搜尋

首頁  >  問答  >  主體

shell - linux中如何筛选一个文件中的内容在另一个文件中出现过?

比如a文件中有:

100
200
300

b文件中有:

This is 100.
That is 200.
Hello 400.

想取出b文件中符合条件的这两条:

This is 100.
That is 200.

单从linux文件操作的角度有好的实现方法吗?

巴扎黑巴扎黑2786 天前748

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-04-17 16:20:09

    執行指令grep -f a b即可
    使用awk的话,可以这样awk 'NR==FNR{x[

    ];next}{for(i in x)if(🎜~i)print}' a b🎜

    回覆
    0
  • PHPz

    PHPz2017-04-17 16:20:09

    如果說是比較兩個檔案中相同的資料的話,可以使用comm指令。
    如果說需要找出包含某些資料的行的話,還是要先把A檔案中的資料提取出來,例如A是100,200,300,那麼我們可以用egrep '[1-3]00' b,這樣結果就出來了。
    但是涉及一些比較複雜文件對比,還是建議使用shell或awk、python來處理。

    回覆
    0
  • 取消回覆