Как использовать команду sed в Linux

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

Sed означает «Редактор потока» и представляет собой мощную утилиту, которая позволяет анализировать и конвертировать текст прямо из командной строки. Независимо от того, имеете ли вы дело с файлами конфигурации, сценариями или даже обычным текстом, sed — это инструмент, который поможет вам быстро и эффективно манипулировать текстом.

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

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

Общий синтаксис команды sed:

$sed (ОПЦИИ) (ФАЙЛ).

1. Заменить текст

эхо «Текст» | sed ‘s/Replaceable_Word/The_Word_That_Replaces/’

Используйте команду sed для поиска и замены любой части текста. ‘s’ представляет действие поиска и замены.

Например, предположим, что у вас есть строка «Я люблю CSS» и вы хотите заменить «ССС» с «Библиотеки CSS».

echo «Я люблю CSS» | sed ‘s/CSS/CSS Libraries/’ Я люблю библиотеки CSS

В этом примере команда echo выводит «Я люблю CSS» затем sed заменяет «ССС» с «Библиотеки CSS» . Конечный результат «Я люблю библиотеки CSS» .

2. Заменить текст в определенной строке файла.

sed ‘(строка) s/harder/easier/g’ (файл)

Опция «g» команды sed используется для замены всего, что соответствует шаблону.

Например, предположим, что у вас есть текстовый файл example.txt со следующим содержимым:

Жизнь тяжела. Работать усерднее – ключ к успеху. Чем усерднее вы работаете, тем удачливее вы становитесь.

Чтобы заменить все вхождения слова ‘Сильнее’ с ‘Полегче’ в строке 2 файла example.txt вы должны запустить:

sed ‘2 s/harder/easier/g’ example.txt

После запуска команды результат, отображаемый на терминале, будет:

Жизнь тяжела. Легкая работа – ключ к успеху. Чем усерднее вы работаете, тем удачливее вы становитесь.

Обратите внимание, что слово ‘Сильнее’ заменяется на ‘Полегче’ только в строке 2.

Если вы хотите сохранить эти изменения в файле, вы можете использовать опцию -i:

sed -i ‘2 с/сложнее/проще/г’ example.txt

После запуска этой команды содержимое файла example.txt будет окончательно изменено на:

Жизнь тяжела. Легкая работа – ключ к успеху. Чем усерднее вы работаете, тем удачливее вы становитесь.

3. Замените первое совпадение новым текстом.

sed ‘s/harder/easier/’ (файл)

Эта команда заменяет только первое совпадение шаблона поиска.

Например, предположим, что у вас есть текстовый файл example.txt со следующим содержимым:

Жизнь сложнее, чем мы думаем. Работать усерднее – ключ к успеху. Под лежачий камень вода не течет. Работать усерднее.

Вы можете использовать команду sed для замены слова ‘Сильнее’ с ‘Полегче’ в каждой строке:

sed ‘s/harder/easier/’ example.txt

После выполнения команды результат будет:

Жизнь проще, чем мы думаем. Легкая работа – ключ к успеху. Под лежачий камень вода не течет. Работайте проще.

4. Удалить совпадающие строки.

sed ‘/Something/d’ example.txt

Используйте опцию d команды sed, чтобы удалить любую строку из файла.

Например, предположим, что у вас есть файл example.txt со следующим содержимым:

Привет, мир. Что-то здесь. Еще одна строка. Еще одна строка. Что-то еще.

Запуск команды sed ‘/Something/d’ example.txt выведет:

Привет, мир. Еще одна строка. Еще одна строка.

5. Найдите слово без учета регистра + удалите его.

sed ‘/Sample/Id’ example.txt

Опция I команды sed используется для поиска соответствующего шаблона без учета регистра.

Например, предположим, что у вас есть файл exampleb.txt со следующим содержимым:

Это пробная линия. Другая линия. Еще одна линия Sample. Последняя строка.

Выполнение команды sed ‘/Sample/Id’ example.txt приведет к следующему выводу:

Другая линия. Последняя строка.

6. Замените слова заглавными буквами.

sed ‘s/(библиотеки)/U1/Ig’ example.txt

Используйте опцию U команды sed, чтобы преобразовать любой текст в верхний регистр.

Например, предположим, что у вас есть файл example.txt со следующим содержимым:

Я люблю библиотеки. библиотеки отличные. Вы можете найти много книг в библиотеках.

После запуска команды sed результат будет таким:

Я люблю БИБЛИОТЕКИ. БИБЛИОТЕКИ — это здорово. Вы можете найти много книг в БИБЛИОТЕКАХ.

7. Замените слова строчными буквами.

sed ‘s/(libraries)/L1/Ig’ example.txt

Опция L команды sed используется для преобразования любого текста в нижний регистр.

Например, предположим, что у вас есть файл example.txt со следующим содержимым:

Библиотеки необходимы для проведения исследований. библиотеки помогают во многих отношениях. Я люблю БИБЛИОТЕКИ!

После запуска команды sed результат будет таким:

библиотеки необходимы для проведения исследований. библиотеки помогают во многих отношениях. Я люблю библиотеки!

8. Вставьте в файл пустые строки

sed G (файл)

Используйте опцию G команды sed, чтобы вставить пустую строку после каждой строки файла.

Например, предположим, что у вас есть файл example.txt со следующим содержимым:

Привет, мир, это тест

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

sed G example.txt

После выполнения команды результат будет:

Привет, мир, это тест

9. Распечатайте номер строки файла.

sed ‘=’ (файл)

Знак = используется для печати номера строки перед каждой строкой текста в файле.

Например, предположим, что у вас есть файл example.txt со следующим содержимым:

Привет, мир, это тест

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

sed ‘=’ example.txt 1 Привет 2 Мир 3 Это 4 Is 5 A 6 Тест

Похожие записи

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

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