Команда sed
— это неинтерактивный редактор текста, работающий по принципу замены. Его можно использовать для поиска, вставки, замены и удаления фрагментов в файле. С помощью этой утилиты вы можете редактировать файлы не открывая их.
Здесь:
- s — замена;
- g — глобально, что означает «все вхождения искомого значения».
- После первого прямого слэша расположено регулярное выражение для поиска, после второго — выражение для замены.
- Если не указывать файлы, вывод будет на экран.
- Опция
-e
— команды, которые надо выполнить для редактирования
sed
можно использовать для конвеерной обработки команд:
удаляет пустые строки или строки, которые содержат только пробелы:
^
Соответствует началу строки$
Соответствует концу строки.
Соответствует любому единственному символу*
Соответствует нулю или более повторений предшествующего символа[ ]
Соответствуют одному любому из символов, включённых в квадратные скобки между[
и]
[^ ]
Соответствуют одному любому из символов, не включённых в квадратные скобки между[^
и]
\б
уква соответствуют одному любому символу из определённого класса символов, в частности\s
— это любой пробельный символ.
sed ‘s/stringa1/stringa2/g’ example.txt
: в файле example.txt
заменить «string1» на «string2», результат вывести на стандартное устройство вывода
sed ‘/^$/d’ example.txt
удалить пустые строки из файла example.txt
Опция d удаляет строку
‘4,10d’
— удалит с 4й по 10ю строку‘4 + 5d’
- это соответствует строке 4 в файле, удаляет эту строку, продолжает удалять следующие пять строк, а затем прекращает ее удаление и печатает остальные‘1 ~ 3d’
— это удаляет первую строку, переходит на следующие три строки, а затем удаляет четвертую строку. Сед продолжает применять этот шаблон до конца файла.‘2,5! D’
— это удаляет все, кроме начиная со 2- й до 5- й строки
sed ‘/ *#/d; /^$/d’ example.txt
удалить пустые строки и комментарии из файла example.txt
sed -e ‘1d’ result.txt
удалить первую строку из файла example.txt
sed -e ‘s/0*/0/g’ example.txt
заменить последовательность из любого количества нулей одним нулём
sed -e ‘s/ *$‘ example.txt
удалить пустые символы в в конце каждой строки
sed -e ‘s/string1g’ example.txt
удалить строку «string1» из текста не изменяя всего остального
sed -n ‘/string1/p’
отобразить только строки содержашие «string1»
- опция
n
— вывести содержимое буфера шаблона и прочитать в него следующую строку;
sed -n ‘1,8p;5q’ example.txt
взять из файла с первой по восьмую строки и из них вывести первые пять
sed -n ‘5p;5q’ example.txt
вывести пятую строку
📂 Tooling | Последнее изменение: 28.08.2024 08:38