我想将命令的输出通过管道传输到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
答案 0 :(得分:5)
您似乎并不是真的想将值传递给awk。相反,您想将其作为参数传递。您可以通过类似以下方式从管道中读取它:
cmd1 | awk 'NR==FNR{a=$0} NR!=FNR{print $0,a}' - input.txt
但似乎更自然:
awk '{print $0,a}' a="$(cmd1)" input.txt