Awk 学习笔记(2)
常用的选项
- -F 指定分隔符
- -f 指定调用脚本,可以多次引用,不同文件会被合并成一个awk脚本
- -d 输出所有变量到文件,默认输出到awkvars.out,也可以通过在-d后加文件路径来指定文件,但是注意-d与文件名之间不能有空格。调试的时候这个选项会非常有用。
1 2 3 4 5 6 7 |
|
- -p 将命令行下的awk脚本格式化输出到awkprof.out文件,可以在-p后加文件路径来指定文件,注意也不能有空格
- -v 预设置awk程序变量,可以设置多次
分隔符的四种形式
-F " "
默认,以空格或tab分隔,首尾的空格会被排除掉-F "a"
以普通字符串分隔,用户指定-F "[: ]"
以正则表达式分隔,一般在设定多个分隔符时比较有用(如右边就是按:
或空格分隔)-F ""
每个字符都是单独的一列,只在gawk中支持
@include
1 2 3 4 |
|
多行记录
有些文件中相关联的数据可能会分为多行显示,看手册中的例子
1 2 3 4 5 6 7 |
|
很明显每个块中的数据是有联系的,然后每个块都以一行空字符分割,那么分析的awk脚本可以写成这样。
1 2 3 4 5 6 7 |
|
这里的RS也是支持正则表达式的
格式化控制符
OFMT与printf中用到的格式化控制符可以参考c中的printf,具体可以参考手册
I/O
awk可以用>
,>>
,|
将输出定向到文件或管道,但需要注意的是后面的文件名或命令都需要用双引号包起来。
switch
1
|
|
switch语句与C中相同,注意break的使用。此外,在兼容模式下不可用。