Как удалять строки из файлов с помощью sed, awk и grep в Linux

Как удалять строки из файлов с помощью sed, awk и grep в Linux

Рубрики:

Linux, Утилиты Linux

Метки:

awk, Grep, linux, sed

Текстовые файлы содержат информацию в виде последовательности символов, обычно организованных в строки, каждая из которых представляет собой единицу текста. В отличие от двоичных файлов, текстовые могут быть прочитаны человеком. Открывать и редактировать их можно с помощью простого текстового редактора.

В этой статье Вы узнаете, как использовать команды sed, awk и grep для удаления строк из текстовых документов в Linux.

Содержание:

  1. Удаление строк с помощью команды sed
  2. Удаление строк с помощью команды awk
  3. Удаление строк по шаблону с помощью grep
  4. Выводы

Удаление строк с помощью команды sed

Утилита sed (от англ. Steam Editor) — инструмент командной строки Linux, предназначенный для обработки текста. Эту команду можно использовать для поиска, замены, удаления и редактирования строк в текстовых файлах.

Важно: по умолчанию утилита sed изменяет текст в потоке вывода, а не в исходном файле.

Синтаксис sed для удаления строк имеет следующий вид:

 

Где [lineNumber] — номер строки, которую нужно удалить.

Читайте также: 12 полезных команд для фильтрации текста и эффективных операций с файлами в Linux.

Допустим, нам нужно удалить из текстового файла test.txt третью строку. Для этого выполним в терминале:

 

sed delete line from output

Как видно на скриншоте, текст в самом документе остался без изменений. Чтобы удалить строку из содержимого файла, следует дополнительно использовать опцию -i:

 

sed delete line from file

Удаление строк с помощью команды awk

Утилита awk — инструмент командной строки, предназначенный для обработки текста. Он позволяет быстро и эффективно выполнять различные манипуляции с данными в файле.

Важно: по умолчанию утилита awk изменяет текст в потоке вывода, а не в исходном файле.

Для управления строками текста инструмент awk использует переменные. Например, переменная NR представляет номер текущей обрабатываемой строки. Чтобы удалить определенную строку с помощью awk, следует применить NR с оператором != и номером нужной строки. К примеру:

 

awk delete file from output

Читайте также: Введение в AWK: руководство для начинающих.

Чтобы удалить строку также и в исходном файле, используйте следующую конструкцию команд:

 

awk delete file from file

Удаление строк по шаблону с помощью grep

Команда grep — утилита, используемая для поиска и фильтрации текста в файлах. Команда ищет шаблоны, заданные с помощью регулярных выражений, и отображает соответствующие строки.

Важно: для удаления строк grep использует не их порядковый номер, а шаблон текста.

Чтобы удалить строку из стандартного потока вывода с помощью команды grep, используйте с ней опцию -v и соответствующий шаблон в качестве аргумента. Например:

 

grep delete line from output

Читайте также: 12 практических примеров команды grep в Linux.

Чтобы удалить строку и из исходного файла, используйте следующую конструкцию команд:

 

grep delete file from file

Выводы

Команды sed, awk и grep позволяют быстро удалять определенные строки из текстовых файлов в Linux. Вы можете использовать показанные в этой статье примеры в повседневной работе, просто подставляя собственные значения.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Утилиты Linux

Метки:

awk, Grep, linux, sed

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики