Команда sed — это неинтерактивный редактор текста, работающий по принципу замены. Его можно использовать для поиска, вставки, замены и удаления фрагментов в файле. С помощью этой утилиты вы можете редактировать файлы не открывая их.
sed -e 's/искомоезначение/значениезамены/g' исходныйфайл > итоговыйфайлЗдесь:
- s — замена;
- g — глобально, что означает «все вхождения искомого значения».
- После первого прямого слэша расположено регулярное выражение для поиска, после второго — выражение для замены.
- Если не указывать файлы, вывод будет на экран.
- Опция
-e— команды, которые надо выполнить для редактирования
sed можно использовать для конвеерной обработки команд:
вашакоманда | sed -e ‘/^\s*$/d’удаляет пустые строки или строки, которые содержат только пробелы:
^Соответствует началу строки$Соответствует концу строки.Соответствует любому единственному символу*Соответствует нулю или более повторений предшествующего символа[ ]Соответствуют одному любому из символов, включённых в квадратные скобки между[и][^ ]Соответствуют одному любому из символов, не включённых в квадратные скобки между[^и]\буква соответствуют одному любому символу из определённого класса символов, в частности\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