Вы хотите заменить их чем-то или полностью удалить? В любом случае это можно сделать с помощью sed
. Удалить:
sed -i -e '/^,\+$/ D' yourfile1.csv yourfile2.csv ...
Чтобы заменить: ну, смотрите ответ wnoise, или, если вы не хотите создавать новые файлы с выводом,
sed -i -e '/^,\+$/ s//replacement/' yourfile1.csv yourfile2.csv ...
или
sed -i -e '/^,\+$/ c\
replacement' yourfile1.csv yourfile2.csv ...
(это должно быть введено точно как есть, включая разрыв строки). Конечно, вы также можете сделать это с помощью awk
или perl
или, если вы удаляете только строки, даже grep
:
egrep -v '^,+$' < oldfile.csv > newfile.csv
Я проверил их, чтобы убедиться, что они работают, но я бы посоветовал вам сделать то же самое перед их использованием (на всякий случай). Вы можете опустить параметр -i
из sed
, в этом случае он будет распечатывать результаты (а не записывать их обратно в файл), или пропустить перенаправление вывода >newfile.csv
из grep
.
EDIT: В комментарии было указано, что некоторые функции этих sed
команд работают только на GNU sed
. Насколько я могу судить, это опция -i
(которую можно заменить перенаправлением оболочки sed ... <infile >outfile
) и модификатор \+
(которую можно заменить \{1,\}
).