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
Last revision Both sides next revision
генератор_отчетов_awk [2012/02/15 14:33]
val
генератор_отчетов_awk [2018/07/12 08:01]
val [Выбор строк по числовому условию]
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]]
  
 ===== Печать исходных данных без изменений ===== ===== Печать исходных данных без изменений =====
Line 25: Line 25:
 ===== Использование заголовков и итогов в отчетах,​ использование переменных ===== ===== Использование заголовков и итогов в отчетах,​ использование переменных =====
 <​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 39: Line 39:
         }          } 
 !/^$/ {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 74: Line 90:
         }         }
 } }
 +</​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.txt · Last modified: 2022/03/02 15:50 by val