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
が含まれている場合、a
またはb
(あるいはその両方)を含む行が報告されます。
代わりにa<newline>b
に一致させるには、pcregrep
をマルチラインモードで使用できます。
pcregrep -rM "\Q$(xsel -b -o | sed 's/\\E/&\\&\\Q/g'; printf '\\E')" /path/to/folder