Инструменты пользователя

Инструменты сайта


регулярные_выражения._скрипты_для_sed_и_awk

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
регулярные_выражения._скрипты_для_sed_и_awk [2013/06/19 13:05]
kirill
регулярные_выражения._скрипты_для_sed_и_awk [2014/01/29 23:11] (текущий)
Строка 74: Строка 74:
  
 Создадим файл header Создадим файл header
 +
 +
 '' ''
 BEGIN{ print " Производ. Модель.  Год. Пробег. Цена"  }\\ BEGIN{ print " Производ. Модель.  Год. Пробег. Цена"  }\\
Строка 82: Строка 84:
  
 gawk -f header cars.txt   gawk -f header cars.txt  
 +
 +
 +Модифицируем файл header
 +
 +
 +''
 +BEGIN{ print " Производ. Модель.  Год. Пробег. Цена"\\
 +       print "-------------------------------------"\\
 +}\\
 +
 +\\
 +/volvo/,/bmw/  {print}\\
 +
 +END {\\
 +      print "--------------------------------------"\\
 +
 +}''
 +
 +
 +Проверим 
 +
 +
 +gawk -f header cars.txt
 +
 +Использование ИЛИ
 +
 +''
 +BEGIN{ print " Производ. Модель.  Год. Пробег. Цена"\\
 +       print "-------------------------------------"\\
 +}\\
 +\\
 +
 +/volvo/ || /bmw/  {print}\\
 +
 +END {\\
 +      print "--------------------------------------"\\
 +\\
 +}
 +
 +''
 + 
 +Функция length
 +
 +gawk ' {print length, $0}' cars.txt 
 +
 +
 +Нумерациия строк 
 +
 + gawk ' {print NR, $0}' cars.txt 
 +
 +Разделители полей 
 +
 +Разбор файла /etc/passwd
 +
 +BEGIN{
 +print "Пользователь \tДомашний каталог \t Интерпритатор", FS=":"
 +print "---------------------------------------------------"
 +
 +}
 +
 +$3>=1000 {print $1 "\t\t" $6 "\t\t" $7}
 +
 +END {print "---------------------------------------------------"}
 +
 +
 +
 +SED
 +
 +
 +sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных.
 +
 +Инструкции sed 
 +
 +a - append - добавить 
 +
 +с- change - изменить 
 +
 +d - delete - удалить 
 +
 +i - insert - вставить
 +
 +n - next - следующаяя строка со следующей инструкцией 
 +
 +p - print - вывести 
 +
 +q - quit - завершить 
 +
 +r(файл) - добавление содержимого файла к выбранной строке
 +
 +
 +s - substitute - подставить. 
 +
 +флаги 
 +
 +g - global - глобальный режим (все значения)
 +
 +p - print - вывести измененные строки 
 +
 +w - write - записывать в файл.
 +
 +
 +
 +Примеры 
 +
 +Задвоение выбранных строк 
 +
 +sed '/ford/ p' cars.txt 
 +
 +вывод только измененных строк 
 +
 +sed -n  '/ford/ p' cars.txt
 +
 +вывод по номерам строк 
 +
 +sed -n '5,6 p' cars.txt 
 +
 +Вывод первых пяти строк 
 +
 +sed  '5 q' cars.txt
 +
 +
 +Использование файла программы.
 +
 +Создадим файл print_56
 +c содержимым.
 +
 +5,6 p
 + 
 +sed -n -f print56 cars.txt 
 +
 +
 +
 +Добавление текста к строкам
 +
 +sed  '2 a\ +++++' cars.txt 
 +
 +sed  '2 i\ +++++' cars.txt 
 +
 +
 +Замена строк 
 +файл 
 +сhange_test
 + 
 +''
 +2,4 c  \                \\
 +++++++++++++++++++\      \\
 +------------------\       \\
 +******************.        \\
 +''
 +
 +sed -f сhange_test cars.txt
 +
 +подставка.
 +
 +файл 
 +subs_demo
 +
 +s/ford/FORD/ 
 +
 +sed -f subs_demo cars.txt
 +
 +Запись измененных строк в файл
 +
 +subs_demo2
 +
 +s/ford/FORD/w temp
 +
 +Запись диапазона строк в другой файл. 
 +
 +файл write_demo
 +
 +2,4 w temp2
 +
 +запись всех строк кроме выбранных
 +
 +
 +2,4 !w temp2
 +
 +Инструкция (n следующий.)
 +
 +файл next_demo
 +
 +3 n 
 +
 +p
 +
 +n для шаблона 
 + 
 +next_demo2 
 +
 +/ford/ n
 +
 +p                                   
 +
 +Несколько действий 
 +файл action 
 +
 +''1,3 s/ford/FORD/ \\
 +2,4 s/volvo/VOLVO \\
 +3 d'' 
 +
 +Добавление строк
 +файл app_demo
 +
 +''
 +2 a\       \\
 ++++++++++++\  \\ 
 +-----------   \\
 +3 p
 +''
 +
 +Как получть из лога ftpd айпишники злодеев-брутфорсеров:
 +
 +cat p.log | grep failed |cut -f1 -d")" |cut -f2 -d"@" |sort| uniq
 +
 +cat p.log -- берем лог
 +
 +grep failed -- берем из лога строки содержащие слово failed
 +
 +cut -f1 -d")" -- режем все что после ")"
 +
 +cut -f2 -d"@" -- режем все что до "@", остаются айпишники
 +
 +sort| uniq -- избавляемся от повторов
 +
 +
 +
 +
 +
  
  
  
 + 
  
  
регулярные_выражения._скрипты_для_sed_и_awk.1371647131.txt.gz · Последнее изменение: 2013/06/19 17:05 (внешнее изменение)

DokuWiki Appliance - Powered by TurnKey Linux