Эти 10 примеров Sed сделают вас опытным пользователем Linux

Эти 10 примеров Sed сделают вас опытным пользователем Linux

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





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





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

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





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

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

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



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

sed [options] [pattern] [filepath]

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





лучшие вещи, которые можно сделать с малиновым пи

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

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

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





This is a demo text file.
It is an amazing file that will help us all.
The sed command is also great for stream editing.
Want to learn how to use the command?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.

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

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

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

sed -n '3,5p' textfile.txt

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

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

The sed command is also great for stream editing.
Want to learn how to use the command?
This is another line in the file.

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

sed '3,5d' textfile.txt

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

This is a demo text file.
It is an amazing file that will help us all.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.

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

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

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

Выход:

This is a demo text file.
It is an amazing file that will help us all.
This is another line in the file.
This is the third general line in the file.

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

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

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

как играть в игры gamecube на wii homebrew
sed G textfile.txt

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

sed 'G;G' textfile.txt

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

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

sed s/originalword/replaceword/g filename

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

sed s/amazing/super/g textfile.txt

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

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

sed s/amazing/super/g2 textfile.txt

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

sed s/Amazing/super/gi textfile.txt

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

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

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

sed '2,5s/amazing/super/g' textfile.txt

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

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

sed 's/amazing/super/g;s/command/utility/gi' textfile.txt

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

This is a demo text file.
It is an super file that will help us all.
The sed utility is also great for stream editing.
Want to learn how to use the utility?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.

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

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

sed -e '/orange/ s/a/an/g' textfile.txt

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

This is a demo text file.
It is an super file that will help us all.
The sed utility is also great for stream editing.
Want to learn how to use the utility?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is an orange.

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

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

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

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

sed -e 's/[Aa]mazing/super/g' textfile.txt

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

9. Выполните команду конвейера с другими командами

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

lspci | sed G

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

ip route show | sed s/src/source/g

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

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

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

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

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

как перенести ключ продукта Windows 10
sed -i'.backup' 's/amazing/super/g' textfile.txt

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

diff textfile.txt textfile.txt.backup

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

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

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

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

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

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

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

Ещё от Deepesh Sharma

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

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

Нажмите здесь, чтобы подписаться
Категория Linux