精通awk系列(4):awk用法入门
回到:
awk用法入门
1 | awk 'awk_program' a.txt |
awk示例:
1 | # 输出a.txt中的每一行 |
对于awk '{print $0}' a.txt
,它类似于shell的while循环while read line;do echo "$line";done <a.txt
。awk隐藏了读取每一行的while循环,它会自动读取每一行,其中的{print $0}
对应于Shell的while循环体echo "$line"
部分。
下面再分析该awk命令的执行过程:
- 读取文件第一行(awk默认按行读取文件)
- 将所读取的行赋值给awk的变量
$0
,于是$0
中保存的就是本次所读取的行数据 - 进入代码块
{print $0}
并执行其中代码print $0
,即输出$0
,也即输出当前所读取的行 - 执行完本次代码之后,进入下一轮awk循环:继续读取下一行(第二行)
- 将第二行赋值给变量
$0
- 进入代码块执行
print $0
- 执行完代码块后再次进入下一轮awk循环,即读取第三行,然后赋值给
$0
,再执行代码块 - …不断循环,直到读完文件所有数据…
- 将第二行赋值给变量
- 退出awk
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 骏马金龙!
评论