【发布时间】:2021-10-25 22:04:53
【问题描述】:
我有两个文件要比较。如果文件 1 中存在字符串(只有一列),我想在它旁边打印一个 2。如果它只存在于文件 2 中,我想在它旁边打印一个 1。我想保留文件 2 的所有条目。
文件 1:
5131885
5751191
文件 2:
5131885 1000019 -0.013936 0.0069218 -0.0048443 -0.0053688 0.0074161
5751191 1000046 -0.015001 0.0015263 0.00039903 0.0017072 -0.0021732
1668460 1000081 0.026323 0.0068929 0.0048965 0.0077047 0.0061728
文件 3(所需输出):
5131885 2 1000019 -0.013936 0.0069218 -0.0048443 -0.0053688 0.0074161
5751191 2 1000046 -0.015001 0.0015263 0.00039903 0.0017072 -0.0021732
1668460 1 1000081 0.026323 0.0068929 0.0048965 0.0077047 0.0061728
我尝试用 awk 来做,但没有成功。 我达到了这一点:
awk 'FNR==NR{arr[$1]=$1;next} ($1 in arr){print $0,arr[$1]}' file2 file1 > file3
但它不会添加额外的列。
【问题讨论】:
-
还有其他问题,但你当然想交换参数的顺序:先处理
file1,然后处理file2。
标签: awk text-processing