将命令输出传递到Awk

时间:2020-01-14 00:35:53

标签: awk pipe cat

我想将命令的输出通过管道传输到awk。我想将该数字添加到现有.txt文件中新列的每一行中。新列应位于末尾,而不必是第二列。

$ command 1

4512438

$ input.txt

A
B
C
D

$ required_ouput.txt

A   4512438
B   4512438
C   4512438
D   4512438

我认为我需要按照以下内容做一些事情。我不确定如何指定管道进入新列-此awk命令只会在该列中添加整数。

$ command1 | awk -F,'{$(NF + 1)= ++ i;} 1'OFS =,input.txt> required_ouput.txt

1 个答案:

答案 0 :(得分:5)

您似乎并不是真的想将值传递给awk。相反,您想将其作为参数传递。您可以通过类似以下方式从管道中读取它:

cmd1 | awk 'NR==FNR{a=$0} NR!=FNR{print $0,a}' - input.txt

但似乎更自然:

awk '{print $0,a}' a="$(cmd1)" input.txt