我正在嘗試使用xsel
剪貼簿將搜尋字詞透過管道傳輸到grep
充滿 txt 檔案的資料夾中進行搜尋。任何人都可以建議一種方法來做到這一點。
答案1
透過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
,它將報告包含a
或b
(或兩者)的行。
要進行匹配a<newline>b
,您可以使用pcregrep
其多行模式:
pcregrep -rM "\Q$(xsel -b -o | sed 's/\\E/&\\&\\Q/g'; printf '\\E')" /path/to/folder