xsel
クリップボードを使用して検索語をパイプし、txt ファイルがいっぱいのフォルダーを検索しようとしていますgrep
。これを行う方法を提案できる人はいますか。
答え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