我有两个文件。我正在搜索的输出文件包含地震位置并具有以下格式:
19090212 1323 30.12 36 19.41 103 28.24 7.29 0.00 4 149 25.8 0.02 5.7 9.8 D - 0
19090216 1828 49.61 36 13.27 101 35.38 10.94 0.00 13 54 38.5 0.07 0.3 0.7 B 0
19090711 2114 54.11 35 1.07 99 56.42 7.00 0.00 7 177 18.7 4.00 63.3 53.2 D # 0
我想使用第一列的最后 6 位数字(即“19090418”中的“090418”)和第二列的前 3 位数字(即“0728”中的“072”)作为我的搜索词.我正在搜索的文件具有以下格式:
SC17 P 090212132329.89
X25A P 090212132330.50
AMTX P 090216182814.12
X29A P 090216182813.70
Y28A P 090216182822.36
MSTX P 090216182826.80
Y27A P 090216182831.43
在第二个文件中搜索该术语后,我需要弄清楚该部分中有多少行。所以对于这个例子,如果我正在搜索上面第二个文件显示的术语,我想知道 090212132 有 2 行,090216182 有 5 行。
这是我的第一篇文章,所以请告诉我如何提高文章的清晰度或简洁度。感谢您的帮助!
最佳答案
awk
助您一臂之力!
$ awk 'NR==FNR{a[substr($1,3) substr($2,1,3)]; next}
{k=substr($3,1,9)}
k in a{a[k]++}
END{for(k in a) if(a[k]>0) print k,a[k]}' file1 file2
对于您的输入文件,没有预期的输出。
关于linux - 使用一个文件中的部分列作为另一个文件中的搜索词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40474992/