管道命令输出到 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
我想将命令的输出通过管道传输到 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