Linux

在目錄中搜尋字元串 - 獲取不帶文件名的輸出

  • May 8, 2015

我正在執行以下命令以顯示與模式匹配的行。

查找 ./files/ -name “*.txt” -print0 | xargs -0 grep “5|20150507”

輸出是

./files/N1.942_0000.txt:78787878|13|5|20150507221152 ./files/N1.942_0000.txt:78787878|13|5|20150507221156 ./files/N1.943_0002.txt:1221212|13|5|20150507222004 ./files/N1.810_0000.txt:8892716618|13|5|20150507215150 ./files/N1.442_0001.txt:8648648648|13|5|20150507221636 ./files/N1.442_0001.txt:8648648648|13|5|20150507221638 ./files/N1.442_0001.txt:7406079160|13|5|20150507221941

但我想要沒有文件名的輸出,如下所示。

*78787878|13|5|20150507221152

78787878|13|5|20150507221156

1221212|13|5|20150507222004

8892716618|13|5|20150507215150

8648648648|13|5|20150507221636

8648648648|13|5|20150507221638

7406079160|13|5|20150507221941*

將 grep 與選項 “-h” 一起使用。

-h, --no-filename
            Suppress  the  prefixing  of file names on output.  This is    
 the default when there is only one file (or only standard input) to
         search.

查找 ./files/ -name “*.txt” -print0 | xargs -0 grep -h “5|20150507”

grep命令有-r選項

它在目錄上遞歸搜尋文本

下面的例子:

grep -r "5|20150507" ./ | awk -F ':' {'print $2'}

引用自:https://unix.stackexchange.com/questions/202222