我有2个文件:
123:dataset1:dataset932
534940023023:dataset:dataset039302
49930:dataset9203:dataset2003
49930:399402:3949304:293000232:30203993
123:49030:1204:9300:293920
534940023023:49993029:3949203:49293904:29399
我想创建
49930:399402:3949304:293000232:30203993:dataset9203:dataset2003
534940023023:49993029:3949203:49293904:29399:dataset:dataset039302
etc
其中结果包含每对输入行的一行,这些输入行具有相同的第一列(:
作为列分隔符)。
答案 0 :(得分:0)
join
命令是你的朋友。您可能需要对输入进行排序(对文件进行预排序,或者使用流程替换(如果可用) - 例如使用bash
)。
类似的东西:
join -t ':' <(sort file2) <(sort file1) >file3
答案 1 :(得分:0)
如果您不想对文件进行排序,请使用grep:
while IFS=: read key others; do
echo "${key}:${others}:$(grep "^${key}:" file1 | cut -d: -f2-)"
done < file2