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

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


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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
регулярные_выражения._скрипты_для_sed_и_awk [2013/06/19 13:13]
kirill
регулярные_выражения._скрипты_для_sed_и_awk [2014/01/29 23:11] (текущий)
Строка 74: Строка 74:
  
 Создадим файл header Создадим файл header
 +
 +
 '' ''
 BEGIN{ print " Производ. Модель.  Год. Пробег. Цена"  }\\ BEGIN{ print " Производ. Модель.  Год. Пробег. Цена"  }\\
Строка 86: Строка 88:
 Модифицируем файл header Модифицируем файл header
  
-''BEGIN{ print " Производ. Модель.  Год. Пробег. Цена"  }\\ 
  
-/volvo/,/bmw/ {print}''+'' 
 +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  
 + 
 +
 + 
 +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.1371647634.txt.gz · Последнее изменение: 2013/06/19 17:13 (внешнее изменение)

DokuWiki Appliance - Powered by TurnKey Linux