15 полезных ‘sed’ команд на каждый день для Linux системного администратора

Что бы не лазить лишний раз в гугл стоит сделать себе заметки по работе с основными командами linux, сейчас редко но приходится парсить файлы или конфиги, такие команды ускоряют работу и упрощают нелегкую жизнь сисадмина

1. Просмотреть диапазон строк из файла

К примеру надо просмотреть строки в середине файла, такое нужно к примеру когда правишь конфиг и при старте сервиса получаешь сообщение что в строке 111 ошибка, просмотреть что в этой строке не заходя в файл, команда ниже выведет строки с 110 по 112 из файла apache2.conf

 

2. Исключить из диапазона строки при просмотре файла, команда ниже исключит из вывода строки с 110 по 112

 

3. Просмотр не последовательного диапазона строк из файла, команда ниже выведет на экран строки с 5 по 7 и с 10 по 13, как видите параметр «-е» позволяет задавать такие диапазоны

 

4. Замена слова или символа (базовая замена)

— замена слова version га story в файле

— замена слова version га story в файле игнорируя регистр

-заменить в выводе два и более пробела на один:

сравните вывод команды ip route show без sed и с sed:

sed примеры использования

sed примеры использования

 

 

 

 

 

 

 

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

заменить слово version на storu в диапазоне строк с 30 по 40

 

6. Использование регулярных выражений (расширенная замена) -I

Иногда конфигурационные файлы загружаются с комменатриями. Что бы удалить все пустые строки или строки начинающиеся с # из конфигурационного файла apache достаточно выполнить:

 

7. Использование регулярных выражений (расширенная замена) -II

Иногда необходимо  заменить слова начинающиес с большой буквы или с маленькой на другое слово, например заменить zip или Zip на rar в файле myfile.txt

 

8. Просмотреть строки содержащие определенное выражение.

Бывают ситуации когда необходимо просмотреть лог файл за определенный день, к примеру secure лог в Centos Linux за 1 Июля:

 

9. Вставить пустую строку в файл.

Вставить пустую строку для каждой не пустой стрки в файле при выводе на экран

или две строки

 

10. Преобразования dos2unix с построчным редактированием

Файлы созданные или отреактированные в Windows редакторе при открытии в *nix среде как правило могут отображаться некорректно или содержать win символ перевода строки ^M  что бы избавится от него достаточно выполнить команду:

Помните что опция -i подавляет вывод на экран и заносит изменения в файл

 

11. Редактирование «на месте» с сохранением копии оригинала

В предыдущем примере изменения применялись опцией sed «-i» без сохранения оригинального файла, что бы сохранить оригинальный файл делаем:

 

12. Поменять слова местами.

К примеру у нас есть файл содержащий Имя и Фамилию в формате «Имя, Фамилия» и нам необходимо поменять местами что бы стлоа «Фамилия, Имя»

 

13. Заменить слово только если строка сравнения найдена.

Если необходимо заменить одно слово на друго, но только в определнной строке файла, которая содержит необходимое слово (если строка содержит /services/ — заменить start на stop):

 

14. Выполнить две и более замены в одной команде.

К примеру необходимо в файле произвести две и более замены одной командой (заменяем that на this и line на verse)

 

15. Комбинируем sed и другие команды

Естественно sed можно комбинировать с другими командами для создания более мощных команд. К примеру из ПРИМЕР#4  мы можем извлечь свой IP адрес:

Понятно что эту же операцию можно сделать и прощее или по другому, но понимание как работает и что можно сделать с использованием sed зачастую крепко может облегчить задачу и жизнь.

1 голос

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

Войти с помощью: 

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

*
*
Website