awk, Примеры использованияПримеры из лекции "Sed и awk — Виктор Ашик" https://www.youtube.com/watch?v=81r8sD6yDJo Использование awk в качестве grep. Ищем шаблон (^user) и выполняем для него команду вывода строки {print} # awk '/^user/{print}' /etc/passwd Использование awk в качестве head. Выполняем команду {print} и применяем шаблон, проверяющий значение переменной NR (Number of Records). При достижении переменной значения 7 выполняем команду {exit} # awk '{print}NR==7{exit}' /etc/passwd Использование awk в качестве "wc -l". Используем шаблон END, срабатывающий по окончанию обработки файла. Выполняем команду вывода переменной NR. # awk 'END{print NR}' /etc/passwd Пример обработки столбцов при помощи awk. На основе вывода команды 'ls -l'. Ищем совпадения с шаблоном (^l) и выполняем для этих строк сценарий вывода девятого столбца. # ls -l /etc/ | awk '/^l/{print $9}' Указание разделителя. Выведем первый столбец ($1) из файла при условии, что разделитель столбцов - двоеточие (-F:) # awk -F: '{print $1}' /etc/passwd Текстовые переменные в сценарии. Выводим строки в которых первый столбец равен "user" (при условии, что разделитель двоеточие). # awk -F: '$1=="user"{print}' /etc/passwd * * * Собственные примеры Использование awk в качестве cat. Выполняем для команду вывода строк {print} для файла # awk '{print}' /etc/passwd Пример вывода определённой строки из файла. При достижении переменной NR значения 15 - выводим строку. # awk 'NR==15{print}' /etc/passwd Пример замены подстроки Меняет в "указанном.файле" с последующим сохранением в "новый.файл" Данная команда корректно отрабатывает файлы свыше 4Кб и не портит их # awk '{gsub("Оригинал", "Новый текст", $0); print}' /заменить/в/указанном.файле > /изменения/сохранить/как/новый.файл Пример сложения всех чисел в файле Файл: # cat ~/awk-test 1 3 5 7 Команда: # awk 'BEGIN{sum=0}{sum+=$1}END{print sum}' ~/awk-test 16 2017-08-18 23:41:00
|