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

如何将file2中匹配file1字符串的多行内容拼接为单行输出

解决方法

你可以直接用系统自带的awk工具实现需求,无需额外安装其他软件,命令如下:

awk 'NR==FNR {key[$1]=1; order[FNR]=$1; next} {split($0, arr, "/"); k=arr[2]; if (key[k]) res[k] = res[k] " " $0} END {for (i=1; i<=length(order); i++) if (res[order[i]]) {sub(/^ /, "", res[order[i]]); print res[order[i]]}}' file1 file2

命令逻辑说明

  • 先读取file1的所有内容,将每行字符串作为匹配键存储,同时记录file1的原始顺序,保证最终输出顺序和file1一致
  • 再读取file2的每一行,以/为分隔符拆分字符串,取两个/中间的部分作为匹配键,匹配上file1中存储的键后,将当前行拼接至对应键的结果中
  • 全部读取完成后,按file1的顺序输出结果,自动去除拼接产生的开头多余空格,同一匹配键的多行自动用空格拼接为一行
    运行该命令得到的输出和你给出的期望结果完全一致。

内容的提问来源于stack exchange,提问作者user5719890

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:36:01