Редактирование текстовых файлов и вывода на терминал - повседневная работа для тех, кто администрирует машины с Linux. Утилиты командной строки, такие как sed, позволяют пользователю изменять и изменять содержимое текстового файла прямо из окна терминала.
В этой статье мы подробно обсудим команду sed, а также некоторые важные примеры, демонстрирующие возможности утилиты sed в Linux.
Что такое команда sed?
Команда sed, которая является аббревиатурой от Редактор потока, это инструмент командной строки, который позволяет пользователям Linux выполнять текстовые операции с файлами и выводами терминала. Используя sed, пользователи могут находить и заменять определенные слова в тексте, отображать определенный раздел вывода и редактировать текстовые файлы, не открывая их.
Команда sed поддерживает три основные операции:
- Вставка
- Удаление
- Замена (Найти и заменить)
Опытные пользователи также могут реализовать регулярные выражения с помощью команды sed для более эффективного редактирования текстовых потоков.
Основной синтаксис команды:
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, поможет вам легко выйти из таких ситуаций.
Все основные команды для изучения команд Linux из командной строки
Читать далее
- Linux
- Текстовый редактор
- Терминал
- Командная строка

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