awk
参考资料:http://www.zsythink.net/archives/tag/awk
命令结构
awk命令结构:awk [options] 'BEGIN{ statements1 } {statements2} END{ statement3 }' filename
BEGIN后面的statement1是在读取文件之前的操作; statment2是每次读取filename文件中的一行都要执行的操作; END后面的statment3是读取完整个文件后的操作;
awk变量
内置变量
- FS:输入字段分隔符, 默认为空白字符
- OFS:输出字段分隔符, 默认为空白字符
- RS:输入记录分隔符(输入换行符), 指定输入时的换行符
- ORS:输出记录分隔符(输出换行符),输出时用指定符号代替换行符
- NF:number of Field,当前行的字段的个数(即当前行被分割成了几列),字段数量
- NR:行号,当前处理的文本行的行号。
- FNR:各文件分别计数的行号(awk可以传入多个文件)
- FILENAME:当前文件名
- ARGC:命令行参数的个数
- ARGV:数组,保存的是命令行所给定的各参数
自定义变量
使用-v name=value
来创建自定义变量,可以在{ statement }
中使用。
awk分隔符
awk命令可以指定输入分隔符FS和输出分隔符PFS:
- 输入分隔符:awk逐行处理文本的时候,默认使用空格将一行文本切割成多个片段。可以通过
-v FS=str
来设置输入分割符为str。例如:
1 |
|
- 输入分隔符:使用逗号分割输出每一列(即’print $1,$2,$3’)的时候,awk默认使用空格分隔。可以通过
-v OFS=str
来设置输出分割符为str。例如:
1 |
|