【发布时间】:2017-11-24 01:47:54
【问题描述】:
我有一个类似的 awk 脚本
awk 'FNR==NR {col1[$1]++; col2[$2]++; next} {print $0, col2[$2] "/" length(col1)}' input input
但如果我有很多文件并且需要将此脚本用于连接文件,例如:
cat *all_input | awk 'FNR==NR {col1[$1]++; col2[$2]++; next} {print $0, col2[$2] "/" length(col1)}' STDIN STDIN
不起作用。如何从管道中使用两次 STDIN?
【问题讨论】:
-
你的问题毫无意义。如果您要通过标准输入将许多文件添加到 awk 中?为什么你需要在最后再次通过标准输入。你理解错了
-
..你为什么在先问另一个要求后完全改变问题?
-
抱歉描述有误,但似乎 |进入
-
但如果这是你“需要”的,那么你就不需要了。即使您不想将这些行存储在内存或临时文件中(请参阅stackoverflow.com/a/44688094/1745001),您也可以通过简单的
cat *files | awk '...' - *files获得相同的输出,并且无需进行进程替换。