Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
регулярные_выражения._скрипты_для_sed_и_awk [2013/06/21 14:32] 46.231.215.230 |
регулярные_выражения._скрипты_для_sed_и_awk [2014/01/29 23:11] (текущий) |
||
|---|---|---|---|
| Строка 139: | Строка 139: | ||
| BEGIN{ | BEGIN{ | ||
| - | print " | + | print " |
| - | FS=":" | + | |
| print " | print " | ||
| Строка 148: | Строка 147: | ||
| END {print " | 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 '/ | ||
| + | |||
| + | вывод только измененных строк | ||
| + | |||
| + | sed -n '/ | ||
| + | |||
| + | вывод по номерам строк | ||
| + | |||
| + | 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/ | ||
| + | |||
| + | sed -f subs_demo cars.txt | ||
| + | |||
| + | Запись измененных строк в файл | ||
| + | |||
| + | subs_demo2 | ||
| + | |||
| + | s/ | ||
| + | |||
| + | Запись диапазона строк в другой файл. | ||
| + | |||
| + | файл write_demo | ||
| + | |||
| + | 2,4 w temp2 | ||
| + | |||
| + | запись всех строк кроме выбранных | ||
| + | |||
| + | |||
| + | 2,4 !w temp2 | ||
| + | |||
| + | Инструкция (n следующий.) | ||
| + | |||
| + | файл next_demo | ||
| + | |||
| + | 3 n | ||
| + | |||
| + | p | ||
| + | |||
| + | n для шаблона | ||
| + | |||
| + | next_demo2 | ||
| + | |||
| + | /ford/ n | ||
| + | |||
| + | p | ||
| + | |||
| + | Несколько действий | ||
| + | файл action | ||
| + | |||
| + | '' | ||
| + | 2,4 s/ | ||
| + | 3 d'' | ||
| + | |||
| + | Добавление строк | ||
| + | файл app_demo | ||
| + | |||
| + | '' | ||
| + | 2 a\ \\ | ||
| + | +++++++++++\ | ||
| + | ----------- | ||
| + | 3 p | ||
| + | '' | ||
| + | |||
| + | Как получть из лога ftpd айпишники злодеев-брутфорсеров: | ||
| + | |||
| + | cat p.log | grep failed |cut -f1 -d" | ||
| + | |||
| + | cat p.log -- берем лог | ||
| + | |||
| + | grep failed -- берем из лога строки содержащие слово failed | ||
| + | |||
| + | cut -f1 -d" | ||
| + | |||
| + | cut -f2 -d" | ||
| + | |||
| + | sort| uniq -- избавляемся от повторов | ||
| + | |||