Как использовать команду 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 Тест