You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用awk将另一脚本的单列输出追加为现有表格最后一列

如何将awk脚本输出作为最后一列追加到现有表格?

我有一个名为my_script的awk脚本,输出是单列内容:

DD
EE
AA
CC
BB

同时有一份名为file.txt的现有表格:

C1 123
C3 222
C5 175
C4 318
C8 299

希望把my_script的输出作为最后一列追加到表格,得到如下结果:

C1 123 DD
C3 222 EE
C5 175 AA
C4 318 CC
C8 299 BB

尝试了以下脚本但未成功:

awk '{print $0, $3=myscript}' file.txt

解决方案

方法一:用paste命令(最简单)

paste命令专门用于按行拼接多个文件内容,直接执行:

paste file.txt <(./my_script)

<(./my_script)是进程替换,会把my_script的输出当作临时文件传给paste,自动按行对应拼接两部分内容。

方法二:用awk实现

如果想用awk完成,可以先把my_script的输出读入数组,再遍历原文件对应拼接:

awk 'NR==FNR{arr[NR]=$0; next} {print $0, arr[FNR]}' <(./my_script) file.txt
  • NR==FNR:处理第一个输入(my_script的输出)时,将每一行存入数组arr,下标为行号NR;
  • next:跳过后续逻辑,直接处理下一行;
  • 处理file.txt时,打印当前行$0,再加上数组中对应行号FNR的内容。

原命令失败的原因

你写的$3=myscript是错误的:在awk中,myscript只是普通字符串,不会被当作外部命令执行。原命令会把myscript当作第三列的值输出,而非脚本执行结果,因此无法得到预期效果。

内容的提问来源于stack exchange,提问作者Dr. Heinz Doofenshmirtz PhD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:35:25