Sed (Stream Editor) — потоковый редактор, используемый для преобразования текста. Он может читать текст из стандартного ввода, файла или канала и выводить его на стандартный вывод. Sed в основном используется для обработки файлов, замены текста, обработки и форматирования данных. В этой статье мы рассмотрим некоторые распространенные варианты использования и примеры команд Sed.
sed -n 'p' filename
Приведенная выше команда распечатает каждую строку имени файла. Среди них параметр -n означает не выводить неотредактированные текстовые строки, а p означает печать текущей строки.
sed 's/pattern/replace/g' filename
Приведенная выше команда заменяет все строки, соответствующие шаблону, в файле имени файла на замену. Среди них g представляет собой глобальную замену.
sed '/pattern/d' filename
Приведенная выше команда удалит все строки, содержащие шаблон, в файле имени файла.
sed '1i This is the first line.' filename
Приведенная выше команда добавит строку текста. Это первая строка перед первой строкой имени файла.
sed ':a;N;$!ba;s/\n/ /g' filename
Приведенная выше команда объединяет несколько строк текста в файле имени файла в одну строку. Среди них :a, N, $!ba используются для объединения нескольких строк текста в одну строку, а s/\n/ /g используется для замены символов новой строки пробелами.
sed 's/\(.\{10\}\).*/\1/' filename
Приведенная выше команда усекает каждую строку в файле имени файла до 10 символов, то есть сохраняются только первые 10 символов каждой строки.
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' filename
sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' filename
Приведенные выше команды преобразуют текст в имени файла в верхний и нижний регистр соответственно.
sed '/start/,/end/ s/pattern/replace/g' filename
Приведенная выше команда заменяет строки, соответствующие шаблону, во всех строках от начала до конца в файле с именем файла на команду replace.
sed -n '3p' filename
Приведенная выше команда извлечет третью строку текста из файла с именем файла.
sed 's/ //g' filename
Приведенная выше команда удалит все пробелы в имени файла. Среди них g представляет собой глобальную замену.
sed '/^\s*$/d' filename
Приведенная выше команда удалит все пустые строки в файле имени файла. Среди них ^\s*$ представляет собой пустую строку.
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' filename | sed 's/ /\n/g' | sort | sed '/^$/d'
Приведенная выше команда будет filename Все слова в файле отсортированы по алфавиту. Среди них -e 's/^[[:space:]]//' -e 's/[[:space:]]$//' Используется для удаления пробелов до и после каждой строки, sed 's/ /\n/g' Используется для разделения слов на несколько строк, сортировки Для сортировки sed '/^$/d' Используется для удаления пустых строк.
sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P' filename
Приведенная выше команда будет удалено filename Все повторяющиеся строки в файле.
sed 's/<[^>]*>//g' filename
Приведенная выше команда будет удалено filename Все в файле HTML Этикетка.в,<[^>]*> Указывает на совпадение HTML Этикетка.
sed -i '/pattern/r filename' file
Приведенная выше команда будетсуществовать file Файл содержит pattern Вставить после строки filename текст в файле.