Как удалить пробелы из входного файла?

Одним из расширений для chrome/firefox, которое я считаю очень полезным, является Edit with Emacs , которое я использовал для замены "It's All Text", когда оно перестало существовать.

Расширение добавляет кнопку в каждую текстовую область на странице, при нажатии на которую текущее содержимое копируется в редактор Emacs, где вы можете его редактировать.Когда это сделано, текст отправляется обратно в текстовую область. Я использовал его для создания этого ответа.

Там написано, что он может работать с другими редакторами, но у меня нет примеров, чтобы привести вам.

0
02.12.2020, 12:36
3 ответа

Пропустить

sed '/^[[:blank:]]*$/d'

Эта sedкоманда удаляет все строки, которые пусты или содержат только пробелы и/или знаки табуляции. Регулярное выражение ^[[:blank:]]*$соответствует пустым/пустым строкам, а замыкающее d— это команда редактирования sed, которая их удаляет.

Например:

sed '/^[[:blank:]]*$/d' <file >newfile

Файл newfileбудет отредактированным вариантом fileс удаленными пустыми строками.

В качестве альтернативы можно выводить только строки, содержащие не -пустые символы:

sed -n '/[^[:blank:]]/p' <file >newfile

Печатает каждую строку, содержащую хотя бы один символ, кроме пробела или табуляции. Остальные строки игнорируются. Параметр -nдля sedотключает вывод каждой строки по умолчанию, а конечная p— это команда sed, которая выводит текущую строку (, если она соответствует предыдущему регулярному выражению ).

1
18.03.2021, 22:45

если вы хотите избавиться от строк, содержащих только пробелы, а также от пустых строк:

grep '[^ ]'   # ie, match any lines with at least 1 char different from space

альтернативно:

grep -v '^ *$' # ie, hide lines that only contain spaces (0 or n spaces, ie empty lines as well)

если вы также хотите избавиться от пустых строк или строк с помощью только «табуляции или пробелов»

grep -v "^[ $(printf '\t')]*$"
0
18.03.2021, 22:45

Обязательноеawk-базовое решение:

awk 'NF' input.txt

Будут напечатаны только строки, в которых awkобнаружено хотя бы одно «поле» (, т. е. счетчик полей NFне равен -нулю ). Обратите внимание, что это также удалит пустые строки в том смысле, что они содержат только пробелы.

0
18.03.2021, 22:45

Теги

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