Удалить строки из файла с помощью Sed

Утилита Unix 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.txt

sed '/./!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 
Предыдущая статья Следующая статья

Лучшие советы