User Tools

Site Tools


генератор_отчетов_awk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
генератор_отчетов_awk [2011/11/30 10:52]
127.0.0.1 внешнее изменение
генератор_отчетов_awk [2022/03/02 15:50] (current)
val [Генератор отчетов awk]
Line 1: Line 1:
 ====== Генератор отчетов awk ====== ====== Генератор отчетов awk ======
  
-[[http://​ru.wikipedia.org/​wiki/​AWK]] +  * [[https://​youtu.be/​4PkkMzB7fIM|Видео:​ Генератор отчетов AWK]] 
- +  * [[https://​ru.wikipedia.org/​wiki/​AWK|AWK в Википедии]] 
-[[http://​lib.ru/​MAN/​DEMOS210/​awk.txt]]+  ​* ​[[http://​lib.ru/​MAN/​DEMOS210/​awk.txt|Язык обработки структурированных текстов AWK]] 
 +  * [[https://​superuser.com/​questions/​766887/​tcpdump-how-to-get-grepable-output|tcpdump:​ how to get grepable output?]]
  
 ===== Печать исходных данных без изменений ===== ===== Печать исходных данных без изменений =====
Line 15: Line 16:
 ===== Фильтрация данных ===== ===== Фильтрация данных =====
 <​code>​ <​code>​
-$ awk '/root/ {print $0}' /etc/passwd+$ awk '/^user/ {print $0}' /etc/passwd
 </​code>​ </​code>​
  
 ===== Использование разделителя полей и отрицательного условия ===== ===== Использование разделителя полей и отрицательного условия =====
 <​code>​ <​code>​
-$ awk -F: '!/nologin/ {print $1}' /etc/passwd +$ awk -F: '!/sh$/ {print $1}' /etc/passwd
-# $FreeBSD +
-+
-root +
-toor+
 </​code>​ </​code>​
 +
 ===== Использование заголовков и итогов в отчетах,​ использование переменных ===== ===== Использование заголовков и итогов в отчетах,​ использование переменных =====
 <​code>​ <​code>​
-$ awk -F: 'BEGIN {print "Users used csh"; count=0} /csh$/ {print $1; count++} END {print count " users"​}'​ /etc/passwd+$ awk -F: 'BEGIN {print "Users used /bin/sh:"; count=0} /bin\/sh$/ {print $1; count++} END {print ​"​Summary:" ​count " users"​}'​ /etc/passwd
 </​code>​ </​code>​
 +
 ===== Обработка файла почтового ящика пользователя ===== ===== Обработка файла почтового ящика пользователя =====
 с какой строки начинается и от кого письмо с какой строки начинается и от кого письмо
 <​code>​ <​code>​
-$ ee ex1.awk 
- 
 $ cat ex1.awk $ cat ex1.awk
 +</​code><​code>​
 BEGIN {st=1} BEGIN {st=1}
 /^$/ {st=1} ​ /^$/ {st=1} ​
Line 42: Line 40:
         }          } 
 !/^$/ {st=0} !/^$/ {st=0}
- +</​code><​code>​ 
-$ awk -f ex1.awk /var/mail/uX+$ awk -f ex1.awk /var/mail/user1 
 +</​code><​code>​
 String 1 String 1
-From u0@server.class ​Tue Oct 18 10:05:44 2005 +From user1@host19.class.un Wed Feb 15 05:41:42 2012 
-String ​21 +String ​19 
-From u0@server.class ​Tue Oct 18 10:05:49 2005 +From user2@host19.class.un Wed Feb 15 05:41:58 2012 
-String ​41 +</​code><​code>​
-From u5@server.class Tue Oct 18 10:05:49 2005 +
 Переслать отдельное письмо:​ Переслать отдельное письмо:​
  
-tail -n +21 /var/mail/uX | formail -1 -s sendmail val@bmstu.ru+tail -n +21 /var/mail/user1 | formail -1 -s sendmail val@bmstu.ru
 </​code>​ </​code>​
  
-===== Отчет по суммарному ​количеству товаров на складе ​=====+ 
 +===== Выбор строк ​по числовому ​условию ===== 
 + 
 +  * Пример назначения значений переменным и использования переменных ​окружения 
 +  * [[Команды фильтры#​Вывод списка ip адресов из файла]] 
 <​code>​ <​code>​
-vi wares.txt+cat list_count_ip.txt 
 +</​code><​code>​ 
 +32 172.16.1.5 
 +15 172.16.1.3 
 +11 172.16.1.4 
 +24 172.16.1.1 
 +</​code><​code>​ 
 +$ COUNT=12
  
 +$ cat list_count_ip.txt | awk -v c=$COUNT '{if ($1 > c) print $2}'
 +</​code>​
 +
 +===== Отчет по суммарному количеству товаров на складе =====
 +<​code>​
 $ cat wares.txt $ cat wares.txt
 +</​code><​code>​
 table:34 table:34
 car:24 car:24
 apple:23 apple:23
 car:12 car:12
- +</​code><​code>​
-$ vi ex2.awk +
 $ cat ex2.awk $ cat ex2.awk
 +</​code><​code>​
 { {
         M[$1]+=$2         M[$1]+=$2
Line 77: Line 91:
         }         }
 } }
 +</​code><​code>​
 $ awk -F: -f ex2.awk wares.txt $ awk -F: -f ex2.awk wares.txt
 +</​code><​code>​
 sum apple=23 sum apple=23
 sum car=36 sum car=36
 sum table=34 sum table=34
 </​code>​ </​code>​
генератор_отчетов_awk.1322635966.txt.gz · Last modified: 2013/05/22 13:50 (external edit)