Редактирование текстовых файлов и вывода на терминал - повседневная работа для тех, кто администрирует машины с Linux. Утилиты командной строки, такие как sed, позволяют пользователю изменять и изменять содержимое текстового файла прямо из окна терминала.

В этой статье мы подробно обсудим команду sed, а также некоторые важные примеры, демонстрирующие возможности утилиты sed в Linux.

Что такое команда sed?

Команда sed, которая является аббревиатурой от Редактор потока, это инструмент командной строки, который позволяет пользователям Linux выполнять текстовые операции с файлами и выводами терминала. Используя sed, пользователи могут находить и заменять определенные слова в тексте, отображать определенный раздел вывода и редактировать текстовые файлы, не открывая их.

Команда sed поддерживает три основные операции:

  1. Вставка
  2. Удаление
  3. Замена (Найти и заменить)

Опытные пользователи также могут реализовать регулярные выражения с помощью команды sed для более эффективного редактирования текстовых потоков.

instagram viewer

Основной синтаксис команды:

sed [параметры] [шаблон] [путь к файлу]

...где параметры различные функции команды, шаблон регулярное выражение или сценарий, которому вы хотите сопоставить, и Путь файла - это путь к текстовому файлу, содержащему текст.

10 примеров команды Linux sed

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

Мы будем использовать следующий текстовый файл для демонстрации в посте.

Это демонстрационный текстовый файл.
Это замечательный файл, который поможет всем нам.
Команда sed также отлично подходит для редактирования потока.
Хотите узнать, как пользоваться командой?
Это еще одна строка в файле.
Это третья общая строка в файле.
Этот файл называется текстовым файлом.
Это яблоко.
Это апельсин.

1. Просмотр диапазона строк

Команды Linux, такие как head и tail, выводят первые или последние десять строк текстового файла. Но что, если вы хотите поместить содержимое между двумя конкретными строками в файле? В таких ситуациях может пригодиться команда sed.

Чтобы вывести содержимое между строками 3 и 5 файла textfile.txt:

sed -n '3,5p' текстовый файл.txt

В -n флаг запрещает sed отображать пространство шаблонов в конце каждого цикла. Вы также можете использовать --тихий а также --тихий варианты вместо -n. В п аргумент означает Распечатать и используется для отображения пользователю совпадающих строк.

Выполнение вышеупомянутой команды в файле примера дает следующий результат.

Команда sed также отлично подходит для редактирования потока.
Хотите узнать, как пользоваться командой?
Это еще одна строка в файле.

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

sed '3,5d' textfile.txt

В d flag удаляет совпавшие строки из вывода и отображает остальное содержимое.

Это демонстрационный текстовый файл.
Это замечательный файл, который поможет всем нам.
Это третья общая строка в файле.
Этот файл называется текстовым файлом.
Это яблоко.
Это апельсин.

2. Отображение непоследовательных строк

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

sed -n -e '1,2p' -e '5,6p' textfile.txt

Выход:

Это демонстрационный текстовый файл.
Это замечательный файл, который поможет всем нам.
Это еще одна строка в файле.
Это третья общая строка в файле.

В -e флаг помогает в выполнение несколько действий с помощью одной команды.

3. Вставить пробел между линиями

Если по какой-либо причине вы хотите вставить пустые строки между каждой строкой в ​​текстовом файле, используйте грамм аргумент с помощью команды sed по умолчанию.

sed G textfile.txt

Чтобы вставить в вывод несколько пустых строк, передайте несколько грамм аргументы, разделенные точка с запятой (;) персонаж.

sed 'G; G 'textfile.txt

4. Заменить слово в текстовом файле

Если вы хотите заменить каждое вхождение определенного слова другим словом, используйте s а также грамм аргументы с командой. Базовый синтаксис для замены слов с помощью команды sed:

sed s / оригинальное слово / replaceword / g имя файла

Используя указанный выше синтаксис, вы можете заменить слово удивительный с участием супер в файле textfile.txt:

sed s / удивительно / супер / g textfile.txt

В s аргумент означает подмена и грамм Команда используется для замены совпадающего содержимого указанным заменяющим содержимым.

Чтобы заменить второе вхождение слова на sed, передайте число в грамм аргумент. В таком случае:

sed s / удивительно / супер / g2 textfile.txt

Если вы хотите игнорировать регистры символов при замене слов, используйте джи вместо грамм, где я означает игнорировать дело.

sed s / удивительно / super / gi textfile.txt

Связанный: Используете Vi? Вот как открыть файл, затем сохранить и выйти

5. Заменить слова внутри диапазона

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

sed '2,5s / удивительно / супер / g' textfile.txt

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

Если вы хотите выполнить две или более замены одновременно, просто разделите команды символом точка с запятой (;) персонаж.

sed 's / удивительно / супер / г; s / команда / утилита / gi 'текстовый файл.txt

Система отобразит следующий вывод.

Это демонстрационный текстовый файл.
Это супер-файл, который поможет всем нам.
Утилита sed также отлично подходит для редактирования потокового видео.
Хотите узнать, как пользоваться утилитой?
Это еще одна строка в файле.
Это третья общая строка в файле.
Этот файл называется текстовым файлом.
Это яблоко.
Это апельсин.

7. Замените слова, только если найдено совпадение

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

sed -e '/ оранжевый / s / a / an / g' textfile.txt

Выполнение вышеупомянутой команды выведет:

Это демонстрационный текстовый файл.
Это супер-файл, который поможет всем нам.
Утилита sed также отлично подходит для редактирования потокового видео.
Хотите узнать, как пользоваться утилитой?
Это еще одна строка в файле.
Это третья общая строка в файле.
Этот файл называется текстовым файлом.
Это яблоко.
Это оранжевый.

Обратите внимание, что слово а в соответствии Это яблоко не был заменен, так как система не нашла слово апельсин в этом.

8. Замена слов регулярными выражениями

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

Чтобы заменить все вхождения слова Удивительный или же удивительный с участием супер:

sed -e 's / [Aa] лабиринт / супер / g' textfile.txt

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

9. Pipe sed с другими командами

Вы также можете связать sed с другими командами Linux. Например, вы можете подключить lspci команда с sed для добавления пустых пробелов между строками в выводе.

lspci | sed G

Чтобы заменить определенные слова в выводе ip route show команда:

ip route show | sed s / src / источник / г

Вышеупомянутая команда заменяет слово источник вместо исходного слова src.

Связанный: Как использовать команду поиска для поиска файлов в Linux

10. Отредактируйте и сделайте резервную копию исходного файла

Когда вы работаете с системными файлами, важно выполнять резервное копирование исходного файла при внесении изменений. Это поможет вам отменить изменения в случае, если что-то сломается.

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

sed -i'.backup 's / удивительно / супер / g' textfile.txt

Будет создан новый файл с именем textfile.txt.backup. Вы можете проверить, что эти два файла разные, используя разница команда.

diff textfile.txt textfile.txt.backup

Редактирование строк в Linux с помощью sed

Иногда, когда вы работаете с текстовыми файлами на терминале, форматирование и редактирование вывода для лучшей читаемости становится необходимостью. Sed и awk - это утилиты командной строки в Linux, которые позволяют пользователю эффективно работать с текстовыми файлами, разделяя данные на отдельные строки.

Многим пользователям сложно запоминать аргументы и флаги команды sed, так как многие из них доступны для использования. Знание, как получить руководства командной строки для любой команды Linux, поможет вам легко выйти из таких ситуаций.

Электронное письмо
7 способов получить справку из командной строки в Linux

Все основные команды для изучения команд Linux из командной строки

Читать далее

Похожие темы
  • Linux
  • Текстовый редактор
  • Терминал
  • Командная строка
Об авторе
Дипеш Шарма (Опубликовано 36 статей)

Дипеш - младший редактор Linux в MUO. Он пишет информационный контент в Интернете более 3 лет. В свободное время он любит писать, слушать музыку и играть на гитаре.

Ещё от Deepesh Sharma

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

.