簡體   English   中英

在Linux中的grep中使用兩個文件提取條目

[英]Extratcing the entries using two files in grep in linux

我有兩個文本文件,如下所示:

file_1:
12567 1e-3
4567  1e-5
189   22e-4
8743  .365
3456  1e-9

file_2:
BO:0012567
BO:0084567
BO:0004567
BO:0001890
BO:0000189
BO:0007812
BO:0008743
BO:0134568  
BO:0003456
BO:0006789

我想提取與file_1第一列的確切條目匹配的file_2條目。 這是我想要的輸出

 output
BO:0012567 1e-3
BO:0004567 1e-5
BO:0000189 22e-4
BO:0008743 .365
BO:0003456 1e-9

我在Linux中嘗試了grep -f file_1 file_2 > output.txt ,但是它獲取了完全匹配和部分匹配的所有條目。 我只需要那些完全匹配的條目,而不會從file_2開頭或結尾有任何數字。 請指導我。 提前致謝

awk解救!

$ awk 'NR==FNR  {a[$1]=$2; next} 
      $2+0 in a {print $1 FS $2,a[$2+0]}' file1 FS=: file2

BO:0012567 1e-3
BO:0004567 1e-5
BO:0000189 22e-4
BO:0008743 .365
BO:0003456 1e-9

另一個awk:

$ awk '
    NR==FNR { a[$1]=$2; next } 
    (b=$0) && sub(/.*:0*/,"") && ($0 in a) { print b, a[$0] }
' file1 file2
BO:0012567 1e-3
BO:0004567 1e-5
BO:0000189 22e-4
BO:0008743 .365
BO:0003456 1e-9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM