Команда 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