ARGC 命令行參數個數 ARGV 命令行參數排列 ENVIRON 支持隊列中系統環境變量的使用 FILENAME awk瀏覽的文件名 FNR 瀏覽文件的記錄數 FS 設置輸入域分隔符,等價於命令行 -F選項 NF 瀏覽記錄的域的個數 NR 已讀的記錄數 OFS 輸出域分隔符 ORS 輸出記錄分隔符 RS 控制記錄分隔符 ARGVIND 命令行參數索引(合併文件用過、)
[root@salt-node01 etc]# ls -al | awk -F " " 'BEGIN {filesize=0;print "[start]file size is",filesize;} {filesize=filesize+$5;} END{print "[end]file size is",filesize/1024,"K"}' [start]file size is 0 [end]file size is 846.303 K
[root@salt-node01 awk_test]# seq 10 | awk 'i=!i' 等價於[root@salt-node01 ~]# seq 10 | awk 'BEGIN{}i=!i{print $0}END{}' 1 3 5 7 9
[root@salt-node01 awk_test]# seq 10 | awk '{i=!i;print i}' 1 #打印 0 #不打印 1 #重複上述動做 0 1 0 1 0 1 0
[root@salt-node01 awk_test]# seq 10 | awk 'BEGIN{i=1} i=!i;' 2 4 6 8 10
[root@salt-node01 awk_test]# cat uniq.text bbb bbb bbb ccc ccc ccc aaa aaa aaa aaa aaa aaa aaa
[root@salt-node01 awk_test]# awk '!a[$0]++' uniq.text bbb ccc aaa
[root@salt-node01 awk_test]# awk '{!a[$0]++;print a[$0]}' uniq.text 1 2 3 1 2 3 1 2 3 4 5 6 7
[root@salt-node01 awk_test]# cat uniq.text bbb 100 bbb 100 bbb 1 ccc 88 ccc 99 ccc 765 aaa 1 aaa 2 aaa 4 aaa 5 aaa 1008 aaa 876 aaa 123
[root@salt-node01 awk_test]# awk ' {a[$1]+=$2} END {for(i in a) print i,a[i]} ' uniq.text aaa 2019 ccc 952 bbb 201
[root@localhost awk_test]# awk -F " " 'BEGIN{print "name#######average#######total"} {sum[$1]+=$2;total[$1]++} END {for (i in sum) print i,sum[i]/total[i],sum[i]}' 01.txt name#######average#######total zhangsan 85 255 wangwu 92.6667 278 lisi 87.1667 261.5
[root@localhost awk_test]# more 02.text 4 6 7 8 3 4 2 1 5 6 7 10 3 4 5 5 3 3 2 1 5 6 1 10
[root@localhost awk_test]# awk '{sum+=$3+$4;array[NR]=$3+$4}END{arg=sum/NR;for (i=1;i<=length(array);i++) {if (array[i]>arg) print i}}' 02.text 1 3 4 6
[root@salt-node01 awk_test.bak]# more 02.text 1.1.1.1 11 1.1.1.1 22 1.1.1.1 33 1.1.1.1 44 2.2.2.2 11 2.2.2.2 22 2.2.2.2 33 2.2.2.2 44
[root@salt-node01 awk_test]# awk -F " " 'BEGIN{}{a[$1]=a[$1]" "$2}END{for (i in a){print i,a[i]}}' 02.text 1.1.1.1 11 22 33 44 2.2.2.2 11 22 33 44
[root@salt-node01 awk_test]# cat 03.text 12 34 56 78 90 12 34 56 89
[root@salt-node01 awk_test]# cat 03.text |sort -t ' ' -k 3 78 90 12 12 34 56 34 56 89
[root@salt-node01 awk_test]# cat join.0* 100 wangyp 200 jack 300 tom 100 1000$ 200 1010$ 300 1100$
[root@salt-node01 awk_test]# join -a 1 join.01 join.02 100 wangyp 1000$ 200 jack 1010$ 300 tom 1100$
[root@salt-node01 awk_test]# awk 'ARGIND==1{a[$1]=$0};ARGIND==2{print a[$1],$2}' join.01 join.02 100 wangyp 1000$ 200 jack 1010$ 300 tom 1100$
[root@salt-node01 awk_test]# paste join.01 join.02 | awk '{print $1,$2,$NF}' 100 wangyp 1000$ 200 jack 1010$ 300 tom 1100$
[root@salt-node01 awk_test]# awk 'NR==FNR{a[$1]=$0};NR>FNR{print a[$1],$2}' join.01 join.02 100 wangyp 1000$ 200 jack 1010$ 300 tom 1100$