SED — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
Строка 20: Строка 20:
 
Надо в конце строки вставлять символ перевода строки \n. Якорем(метасимволом, квантификатором), обозначающим конец строки, в большинстве диалектов регулярных выражений обычно служит символ $:
 
Надо в конце строки вставлять символ перевода строки \n. Якорем(метасимволом, квантификатором), обозначающим конец строки, в большинстве диалектов регулярных выражений обычно служит символ $:
 
  tail -f access.log | sed 's/$/\n/'
 
  tail -f access.log | sed 's/$/\n/'
 +
 +
 +
Вывести определённую строку, в данном случае третью:
 +
sed -n 3p

Версия 15:03, 30 мая 2019

Удалить строчку по шаблону:

sed '/шаблон/d' filename


Заменить в строке ТЕКСТ1 на ТЕКСТ2:

sed 's/текст1/текст2/' filename


В файле есть строчки:
ttyv0 "/usr/libexec/getty Pc"
ttyv1 "/usr/libexec/getty Pc"
...
ttyv8 "/usr/libexec/getty Pc"

Требуется поставить символ # перед всеми ttyv, кроме ttyv0:

sed 's/^ttyv[1-8]/#&/' /etc/ttys


Отслеживаем логи через tail -f. Для удобства отображения хотелось бы после каждой строки добавлять пустую строку. Надо в конце строки вставлять символ перевода строки \n. Якорем(метасимволом, квантификатором), обозначающим конец строки, в большинстве диалектов регулярных выражений обычно служит символ $:

tail -f access.log | sed 's/$/\n/'


Вывести определённую строку, в данном случае третью:

sed -n 3p