1.txt包含
1
2
3
4
5
.
.
180
2.txt包含
3 0.5
4 0.8
9 9.0
120 3.0
179 2.0
所以我希望我的输出类似于如果 2.txt 与 1.txt 的第一列匹配,那么应该打印 2.txt 中第二列的值。如果不匹配则应打印零。
类似的输出应该是:
1 0.0
2 0.0
3 0.5
4 0.8
5 0.0
.
.
8 0.0
9 9.0
10 0.0
11 0.0
.
.
.
120 3.0
121 0.0
.
.
150 0.0
.
179 2.0
180 0.0
最佳答案
awk 'NR==FNR{a[$1]=$2;next}{if($1 in a){print $1,a[$1]}else{print $1,"0.0"}}' 2.txt 1.txt
简要说明,
NR==FNR{a[$1]=$2;next
:将2.txt的$1
记录到数组a- 如果 1.txt 中的
$1
存在于数组 a 中,则打印a[$1]
,否则打印0.0
关于linux - 如何将两个文本文件与第一列进行比较,如果匹配,则打印相同的内容,如果不匹配,则置零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51373284/