Используйте инструменты [переиздание] Linux в AWK

Использование Linux в AWK инструмент

Предупреждение: Данная статья является блоггером оригинальной статьи, следовать  CC 4.0 BY-SA  авторского соглашения, воспроизведенный, пожалуйста , приложите ссылку первоисточника и это утверждение.
Эта ссылка: https://blog.csdn.net/qq_36119192/article/details/82982732

каталог

AWK

использование AWK

Значение символов в AWK

Печать Печать

Символьные матчи

форматированный вывод

например


AWK

AWK является мощным инструментом анализа текста, по сравнению с Grep найти, редактировать СЭД из, AWK анализа его данных и генерации отчетов, особенно сильна. Awk, чтобы просто прочитать файл строка за строкой, в качестве разделителя пространств по умолчанию каждый срез строки, а затем вырезать часть из множества анализа. AWK является процессор линии, то преимущество по сравнению с растровой обработки, при работе с большими файлами, не появляются из памяти или проблемы обработки медленно, как правило, используется для форматирования текстовой информации

AWK процесс: последовательно обработки каждой строки, а затем выводить

Использование AWK:

Параметр AWK 'BEGIN {} // {действие1; action2} END {} имя файла

Параметры: 

  • -F указать разделитель
  • -f вызова сценария
  • -v определенные переменные

Начало {} инициализатор блок, до обработки каждой строки, код инициализации, используется в основном глобальной переменной, сепаратор снабжен FS

// блок сопоставления может быть строкой или регулярным выражением

{} Код команды блок содержит одну или несколько команд, несколько команд, отделившиеся

END {} конец кодовых блоков, каждый блок кода после того, как обработка строк выполняется снова, в основном, рассчитывается окончательный переваривать информации или выходной конец

Пример: Общее количество корневой линии AWK 'BEGIN {Х = 0} / корень / {Х + = 1} END {Печать "Я найти", X, "корневые линии"}' / и т.д. / пароль Статистика / и т.д. / пароль файл содержит

AWK символов означает:

  • $ 0 представляет всю текущую строку
  • $ 1 в строке первого поля
  • NF поле переменное число
  • NR номер записи каждой строки, мульти-файл приращение записи
  • FNR и NR похоже, но больше документации не увеличивается каждый файл с самого начала
  • \ T Tab
  • \ N новой строки
  • FS НАЧАТЬ определение разделителя
  • RS запись входной разделитель по умолчанию разрыв строки (то есть, строка за строкой, основан ввод текста)
  • ~ Содержит
  • ! ~ Не включено
  • == равно, должно быть все равно, точное сравнение
  • ! = Не равно, точное сравнение
  • && Логическое И
  • || логическое ИЛИ
  • + Обозначает по меньшей мере один матч, или
  • / [0-9] [0-9] + / две или более цифровых
  • / [0-9] [0-9] * / или один или более цифровых
  • OFS разделитель выходных полей, по умолчанию пространство, оно может быть изменено на другое
  • ПРС выходных записей, новая строка по умолчанию, то есть, результат обработки выводится в строку экрана по линии
  • -F [: # /] определяет три разделителя

Печать Печать

  • печать основной команды AWK для печати определенного контента, вы можете также использовать Printf
  • AWK '{печать}' / и т.д. / пароль == AWK '{печати $ 0}' / и т.д. / пароль  
  • AWK «{Печать„“}» / и т.д. / пароль PASSWD содержание не выводит, но на выходе из того же числа пустых строк и далее объясняется AWK текста процесса строка за строкой
  • AWK «{печать„а“}» / и т.д. / пароль на такое же количество выходных линий, только одна строка письма
  • AWK -F: '{печать $ 1}' / и т.д. / пароль == AWK -F ":" '{печать $ 1}' / и т.д. / пароль
  • AWK -F: '{печать $ 1 $ 2}' поле ввода 1, нет промежуточного раздела
  • AWK -F: '{печать $ 1, $ 3, $ 6}' ФСУ = "\ т" / и т.д. / пароль 1,3,6 поле вывода, вкладка как разделитель
  • AWK -F: '{печать $ 1; печать $ 2}' / и т.д. / пароль поле ввода 2, разрывы строк
  • AWK -F: '{печать $ 1 "**" печать $ 2}' / и т.д. / пароль поля ввода 1, к промежуточной перегородке **
  • AWK -F: '{печати "Название:" $ 1 "\ TID:" $ 3}' / и т.д. / пароль выходных полей пользовательского формата 1,2
  • AWK -F: «{Печать NF}» / и т.д. / пароль каждое поле номер строки дисплея
  • AWK -F: «NF> 2 {печати}» / и т.д. / пароль количество линий на поле больше, чем печатная 2
  • Строка 5 'NR == 5 {печать}' / и т.д. / пароль распечатать и т.д. / пароль файл /: AWK -F
  • AWK -F: 'NR == 5 | NR == 6 {печать}' / и т.д. / пароль распечатать / и т.д. строки 5 и 6 строки PASSWD файл /
  • AWK -F: '! NR = 1 {печать}' / и т.д. / пароль не показывает первую строку
  • AWK -F: '{печати> "1.txt"}' / и т.д. / пароль выходной файл
  • AWK -F: '{печать}' / и т.д. / пароль> 2.txt вывод в файл перенаправления                                     

Символьные матчи

  • AWK -F: «/ корень / {печать}» / и т.д. / пароль печатает файл из строк, содержащиеся в корне
  • OK '/' $ A '/ {печать}' / и т.д. / пароль файл содержит распечатывают переменную $ A: AWK -F
  • AWK -F: «/ корень / {печать}!» / и т.д. / пароль печатает файл из строк не имеет корня
  • AWK -F: «/ корень | Том / {печать}» / и т.д. / пароль печатает файл из строк, содержащиеся в корневом каталоге или томе
  • AWK -F: '/ почта /, MySQL / {печать} тест распечатка строка в файле, содержащая почту * MySQL * представляет ноль или любое количество символов
  • AWK -F: '/ ^ [2] [7] [7] * / {печать} пробной печати из файла в начало строки 27, и тому подобное, как 27,277,27gff
  •  
  • AWK -F: «$ 1 ~ / корень / {печати}» / и т.д. / пароль файл для распечатки первой линии поля является корнем
  • AWK -F: «($ 1 ==„корень“) {Печать}» / и т.д. / пароль файл для распечатки первой линии поля является корнем, что эквивалентно выше
  • AWK -F: «! $ 1 ~ / корень / {печати}» / и т.д. / пароль файл для распечатки первой линии поля не является корень
  • AWK -F: «(! $ 1 =„корень“) {печать}» / и т.д. / пароль файл для распечатки первой линии поля не является корнем, что эквивалентно выше
  • AWK -F: '$ 1 ~ / корень | FTP / {печать}' / и т.д. / пароль файл для печати из корня или первой линии поля FTP
  • AWK -F: '($ 1 == "корень" || $ 1 == "FTP") {Печать}' / и т.д. / пароль файл печати из первого поля или FTP корневой линии, что эквивалентно выше
  • AWK -F: «! $ 1 ~ / корень | FTP / {печать}» / и т.д. / пароль файл для распечатки первой линии поля не корень или нет FTP
  • AWK -F: «(!! $ 1 =„корень“|| $ 1 =„FTP“) {Печать}» / и т.д. / пароль файл для распечатки первой линии поля не является корнем или нет FTP, что эквивалентно выше
  • AWK -F: '{если ($ 1 ~ / почта /) {печать $ 1} еще {печать $ 2}}' / и т.д. / пароль Если первое поле почты, а затем распечатать первое поле, или напечатать второе поле

форматированный вывод

AWK '{Printf "% -5S% .2d", $ 1, $ 2}' тест

  • Printf представление выходного формата
  • % Форматированный вывод разделитель
  • -8 обозначает длину 8 символов
  • s представляет собой тип строки, d представляет собой десятичное

Например:

1 , дисплей / и т.д. / PASSWD содержится в строке корневой 
AWK « / корень / »   / и т.д. / PASSWD
 2 , чтобы: Отдельно, дисплей / и т.д. / PASSWD в первом и седьмом поле каждой строки 
AWK -F " : "  ' {Печать $ 1, $ 7..} ' / и т.д. / пароль или AWK ' Бегин {к FS =": "} {Печать $ 1, $ 7..} ' / и т.д. / PASSWD
 3. , чтобы: отдел ют, дисплей / и т.д. / PASSWD , содержащий корень первый и второй ряды семи полей 
AWK -F " : "  ' / корневой / {Печать $ 1, $} 7. ' / и т.д. / PASSWD
 4. , чтобы: отдел ют, дисплей / и т.д. / -FОтдельно, дисплей / и т.д. / 1 и 7 к началу силовых линий корневой PASSWD
AWK « : »  « / ^ корень / {Печать $ 1, $ 7.} » / и т.д. / PASSWD
 5. , в следующем порядке: Отдельно, дисплей / и т.д. / PASSWD в третьем поле больше , чем 999 в первых и седьмых столбцах строки 
AWK -F " : "  '$ 3> 999 {Печать $ 1, $ 7.} '   / и т.д. / PASSWD
 6. , чтобы: отдел ют, дисплей / и т.д. / 1 - го и 7 - го поля в PASSWD седьмом поле содержит Баш строки 
AWK -F " : "  '$ 7 ~ "баш" {Печать $ 1, $ 7.} ' / и т.д. / PASSWD
 7. , в следующем порядке: отдел ют, дисплей / и т.д. / 1 и 7, PASSWD в седьмом поле не содержит Баш строки поле 
AWK -F " :"  '!. 7 $ ~ "NOLOGIN" {Печать $ 1, $ 7.} '   / И т.д. / PASSWD
 8. , Чтобы: Раздельная дисплей $ 3 > 999, и седьмое поле содержит Баш первые и седьмые столбцы строки 
AWK -F " : "  ' $ 3> 999 && $ 7 ~." Баш "{Печать $ 1, $ 7.} ' / и т.д. / PASSWD
 9. , в следующем порядке: отделяют дисплей $ 3 > 999 или седьмое поле содержит Баш строки 1 и 7 поле 
AWK -F " : "  ' $ 3> 999 || $ ~ 7 "Баш" 1 {Print $, $} 7.... ' / и т.д. / ПАРОЛЬ

 

 

рекомендация

отwww.cnblogs.com/jinanxiaolaohu/p/11592445.html