Удаление строк из файла с использованием sed

В Unix команда SED удаляет одну или несколько строк из указанного файла по желанию пользователя. Эта утилита используется для работы с командной строкой Unix, для удаления из файла выражений, которые могут быть идентифицированы с помощью определяющего разделителя (например, запятая, табуляция или пробел), по номеру строки или путем поиска строки, выражения или адреса строки в синтаксисе sed.

Sed: удалить одну или несколько строк из файла

Вот как можно удалить одну или несколько строк из файла.

Синтаксис

sed '{[/]<n>|<string>|<regex>[/]}d'<fileName>       
sed '{[/]<adr1>[,<adr2>][/]d'<fileName>

/.../=разделители

n = номер строки

string = ряд символов, найденный в строке

regex = регулярное выражение, соответствующее искомому шаблону

addr = адрес строки (номер или шаблон)

d = удалить (delete)

Примеры Sed

Вот несколько примеров использования приведенного выше синтаксиса.

Используйте следующий код, чтобы удалить третью строку:

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 [suffix]:

sed -i".bak" '3d' filename.txt

Изображение: © John Schnobrich - Unsplash.com

Контент нашего сайта создается в сотрудничестве с экспертами в области IT и под руководством основателя CCM.net Жана-Франсуа Пиллу. CCM - ведущий международный сайт о технологиях, доступный на 11 языках.
Данный документ под заголовком « Удаление строк из файла с использованием sed » представлен по лицензии Creative Commons. Любое копирование, повторное использование или редактирование содержания должно осуществляться со ссылкой на CCM (ru.ccm.net).