cat与echo命令结合awk的差异:为何echo未输出两次‘6’?
为什么
echo和cat配合awk的输出次数不一样? 这事儿本质就是awk的工作逻辑在起作用——awk是按行处理输入的,每读进来一行,就会执行一次你写的脚本代码块!
咱们拆开来细说:
- 先看
echo 2 | awk '{ print 6 }':echo 2只会输出单独一行内容(就是"2"这一行),所以awk只接收到一行输入,自然只执行一次print 6,输出一个6。 - 再看
cat test.file | awk '{ print 6 }':你的test.file里应该是有两行内容(2017一行,2018一行),cat命令会把这两行全部输出给awk。awk逐行处理,每一行对应执行一次print 6,所以最后就输出了两个6。
简单说就是:输入有多少行,awk就会把你的脚本跑多少次,打印6的次数自然就和输入行数一致啦。
内容的提问来源于stack exchange,提问作者xoyabc
相关产品推荐
相关产品推荐

