管道命令输出到 Awk

Pipe Command Output into Awk

我想将命令的输出通过管道传输到 awk 中。我想将该数字添加到现有 .txt 文件中新列的每一行。新列应该在最后,不一定是第 2 列。

$命令 1

4512438

$input.txt

A
B
C
D

$desired_ouput.txt

A   4512438
B   4512438
C   4512438
D   4512438

我想我需要按照以下思路做一些事情。我不确定如何指定管道进入新列 - 这个 awk 命令只会将整数添加到列中。

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

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

cmd1 | awk 'NR==FNR{a=[=10=]} NR!=FNR{print [=10=],a}' - input.txt

但这样做似乎更自然:

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