awk应用技巧

来源:互联网 发布:翅片式换热器设计软件 编辑:程序博客网 时间:2024/05/18 03:26
1: 引用自身的变量不需要加 $ 符号,如 NF,NR等
2: 引用外部变量需用 ' ' 包围变量名,如 '$1 ~ /'$pattern'/'
3: 如果要在AWK操作前给变量赋值, 用-v , 如 AWK -v str=abcd
4: AWK 的默认动作是 print $0,
5: AWK 的模型为 BEGIN{} 模式1{动作1 }模式2{动作2 }.......模式n{动作n } END{},其中BEGIN为正式处理前的操作,一般用于改变FS,OFS,RS,ORS,END为正式处理后的操作,一般用于总结,打印报表等. 正式处理是一个内建的循环,依次读取文本行,分为多模式,多动作,文本行符合模式1就执行动作1,符合模式2就执行动作2.....,还可以有默认的模式和动作.
6: AWK使用的RE为ERE
7: 如果在BEGIN中设置了OFS, 只有$0有改动OFS才能生效
8: printf 与 print 的区别: printf 不自动打印换行符, print 则自动打印
9: gsub的返回值并不是替换后的字符串,而是返回替换的次数
10: 字符串常量一定在用 " " 包围起来,否则当作变量使用, 如 $1=="ipaddress"
11: AWK 的 for 循环为 C-Style,即为 for(), 区别于 shell (特指BASH,下同) 中的 for(())
12: AWK中的 if 语句为 if ...... else, 区别于 shell 的 if [ condition ] ; then ... elfi ........ fi
13: AWK中可以使用多个分隔符,要封装在方括号里,用' '包围,以防 shell 对它们进行解释,如 awk -F '[ :/t]' ,使用空格,冒号,tab作为分隔符
14: next语句:从输入文件中取得下一个输入行,在AWK命令表顶部重新执行命令,一般用于跳过一些特殊的行
15: awk 匹配多个条件: awk '/kobe/&&/james/'           #同时匹配 kobe 和 james
awk '/kobe/||/james/'             #匹配 kobe 或 james
16: FS的默认值是[ /t/n]+, OFS的默认值为空格,RS,ORS的默认值都是换行
17: 定位行有两种方法: 1: NR==行号    2: 用RE /Love$/
18: exit语句:终止AWK程序,但不跳过END语句
原创粉丝点击