关于awk小技巧
Awk小技巧 1. BEGIN和END的作用 BEGIN代码块:在处理文本之前,一般用于初始化的 主体代码块:对文本的每一行 END代码块:在处理完文本之后,一般用于汇总数据打印结果 2. 怎样打印文本的每一行 cat num.txt |awk {print $0} cat num.txt |awk {print} cat num.txt |awk 1{print} #非0为真,0为假 cat num.txt |awk 1 3. 常用内置变量有哪些 NR:当前行数 NF:当前列数 ORS:输出行分隔符 OFS:输出列分隔符 4. 怎么在整个文本最开始插入一行 cat num.txt |sed 1i00 cat num.txt|awk BEGIN{print “00“}1 5. 怎样只打印某一些行 awk NR>=3i num.fifo |getline time;close();print $0,time} 16. Awk和shell相互传值 Shell传给awk b=123 awk -v a=$b BEGIN{print a} awk BEGIN{a= “$b“ ;print a} awk传给shell `awk BEGIN{print “a=555;b=666“} ) 17. 用awk来写mapreduce Map.sh: awk {sum[$1]++}END{for(i in sum){print i,sum[i]}} Red.sh: awk {sum[$1]+=$2}END{for(i in sum){print i,sum[i]}} /usr/local/hadoop-0.20.2/bin/hadoop jar /usr/local/hadoop-0.20.2/contrib/streaming/hadoop-0.20.2-streaming.jar -jobconf mapred.reduce.tasks=1 -jobconf mapred.textoutputat.separator=“ “ -jobconf stream.map.output.field.separator=“ “ -mapper /root/map.sh -file /root/map.sh -reducer /root/red.sh -file /root/red.sh - /user/root/in1 -output /user/root/out1 亲爱的用户: 烟雨江南,画屏如展。在那桃花盛开的地方,在这醉人芬芳的季节,愿你生活像春天一样阳光,心情像桃花一样美丽,感谢你的阅读。 1、最困难的事就是认识自己。20.7.307.30.202020:5920:59:187月-2020:59 2、自知之明是最难得的知识。二〇二〇二〇二〇年七月三十日2020年7月30日星期四 3、越是无能的人,越喜欢挑剔别人。20:597.30.202020:597.30.202020:5920:59:187.30.202020:597.30.2020 4、与肝胆人共事,无字句处读书。7.30.20207.30.202020:5920:5920:59:1820:59:18 5、三军可夺帅也。星期四, 七月 30, 2020七月 20星期四, 七月 30, 20207/30/2020 6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。8时59分8时59分30-7月-207.30.2020 7、人生就是学校。20.7.3020.7.3020.7.30。2020年7月30日星期四二〇二〇二〇二〇年七月三十日 8、你让爱生命吗,那么不要浪费时间。20:5920:59:187.30.2020星期四, 七月 30, 2020