Как удалить определенную строку из файла?

awk 'BEGIN {FS = OFS = ","} {print $ 0, $ 5- $ 3, $ 6- $ 3}' my_file

-1
02.09.2015, 17:25
3 ответа

попробуйте

 awk '$1 == "," && NF==1 { next ; } { print ; } ' file > other_file

или

 grep  -v '^[ ]*,[ ]*$' file > other_file

или

 sed -i -e '/^[ \t]*,[ \t]*$/d' original_file
4
29.04.2021, 00:24
perl -i -ne 'print if ! /^\s*,\s*$/' file
1
29.04.2021, 00:24

Более кратким awk решением может быть:

awk '!(NF==1&&$1==",")' /path/to/file
  • awk по умолчанию печатает всю строку, пока предикат/фильтр/условие истинно.
  • В данном случае условием является не одно поле (NF==1) being ",".
  • Поэтому только строка 3 будет не соответствовать условию, а остальные строки будут выведены.
1
29.04.2021, 00:24

Теги

Похожие вопросы