Grep

從剪貼板(不是文件名)管道搜尋詞到 grep 以搜尋文件夾

  • April 26, 2017

我正在嘗試使用xsel剪貼板來管道搜尋詞以grep在充滿 txt 文件的文件夾中進行搜尋。任何人都可以提出一種方法來做到這一點。

使用grep支持-r遞歸選項的實現grep

grep -rFe "$(xsel -b -o)" /path/to/your/folder

對於其他grep實現,用於find查找文件:

find /path/to/your/folder -type f -exec \
 grep -Fe "$(xsel -b -o)" /dev/null {} +

/dev/null是為了確保至少傳遞 2 個文件名,grep因此grep始終列印找到字元串的文件的名稱。

請注意,如果 CLIPBOARD 選擇包含多行,則將單獨搜尋每一行。例如,如果選擇包含a<newline>b,它將報告包含ab(或兩者)的行。

a<newline>b改為匹配,您可以使用pcregrep它的多行模式:

pcregrep -rM "\Q$(xsel -b -o | sed 's/\\E/&\\&\\Q/g'; printf '\\E')" /path/to/folder

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