Количество строк в файле с именем MyFile.csv
можно получить с помощью wc -l <MyFile.csv
. Этот номер можно сравнить с 1
и удалить файл с помощью
if [ "$( wc -l <MyFile.csv )" -eq 1 ]; then
rm -i MyFile.csv
fi
$(...)
— это подстановка команды, которая будет заменена выводом команды внутри. Параметр -i
для rm
заставляет утилиту запрашивать подтверждение перед удалением чего-либо.
Чтобы распространить это на все файлы CSV в текущем каталоге:
for filename in./*.csv; do
if [ "$( wc -l <"$filename" )" -eq 1 ]; then
rm -i "$filename"
fi
done
Для дальнейшего обобщения на все файлы CSV в текущем каталоге или в любом месте ниже в любом подкаталоге:
find. -type f -name '*.csv' -exec sh -c '
for pathname do
if [ "$( wc -l <"$pathname" )" -eq 1 ]; then
rm -i "$pathname"
fi
done' {} +
Всегда делайте резервную копию данных, особенно если вы собираетесь протестировать удаление файлов по сценарию.