我想将命令的输出通过管道传输到 awk。我想将该数字添加到现有 .txt 文件中新列的每一行。新列应该在最后,不一定是第 2 列。
$命令 1
4512438
Run Code Online (Sandbox Code Playgroud)
$输入.txt
A
B
C
D
Run Code Online (Sandbox Code Playgroud)
$desired_output.txt
A 4512438
B 4512438
C 4512438
D 4512438
Run Code Online (Sandbox Code Playgroud)
我想我需要按照以下方式做一些事情。我不确定如何指定管道进入新列 - 这个 awk 命令只会将整数添加到列中。
$命令1 | awk -F, '{$(NF+1)=++i;}1' OFS=, input.txt > desired_ouput.txt
您似乎并不真的想将值通过管道传递给 awk。相反,您希望将其作为参数传递。您可以使用以下内容从管道中读取它:
cmd1 | awk 'NR==FNR{a=$0} NR!=FNR{print $0,a}' - input.txt
Run Code Online (Sandbox Code Playgroud)
但这样做似乎更自然:
awk '{print $0,a}' a="$(cmd1)" input.txt
Run Code Online (Sandbox Code Playgroud)