Удалить строки из файла с помощью Sed
Эта команда Unix используется для обработки командной строки . Эта утилита может использоваться для удаления выражений из файла, который может быть идентифицирован с помощью указанного разделителя (такого как запятая, табуляция или пробел), по номеру строки или путем поиска строки, выражения или адреса строки в Синтаксис Сед.
Sed: удалить одну или несколько строк из файла
Вот как можно удалить одну или несколько строк из файла.Синтаксис
sed '[/] d'sed '{[/] [, ] [/] d'
/.../ = разделители
n = номер строки
строка = строка, найденная в строке
регулярное выражение = регулярное выражение, соответствующее искомому шаблону
адрес = адрес строки (номер или шаблон)
d = удалить
Примеры Сед
Вот несколько примеров использования приведенного выше синтаксиса.Используйте следующий код для удаления третьей строки:
sed '3d' fileName.txt
Удалите строку, содержащую строку «awk», используя:
sed '/ awk / d' filename.txt
Вы можете удалить последнюю строку, набрав:
sed '$ d' filename.txt
Или удалите все пустые строки через:
sed '/ ^ $ / d' filename.txtsed '/./!d' filename.txt
Удалите сопоставление строк с помощью регулярного выражения (исключив одно, содержащее цифровые символы, не менее 1 цифры, расположенное в конце строки):
sed '/ [0-9 /] [0-9] * $ / d' filename.txt
Удалить интервал между строками 7 и 9:
sed '7, 9d' filename.txt
Та же операция, что и выше, но замена адреса параметрами:
sed '/ -Start /, / - End / d' filename.txt
Приведенные выше примеры изменяются только при отображении файла (stdout1 = screen).
Для постоянных изменений старых версий (<4) используйте временный файл для GNU sed, используя "-i [суффикс]" :
sed -i ".bak" '3d' filename.txt