
私はSolaris 10を使用していますが、grep
1つはin /usr/bin
、もう1つはoutです/usr/xpg4/bin
。使用方法に関する情報を探していましたが、grep
すべての回答に私のバージョンの-r
切り替えに関する情報が記載されています。-R
grep
答え1
標準(POSIX)構文は次のとおりです。
find /path/to/parent -type f -exec grep 'XXX' /dev/null {} +
(これはファイル名が常に印刷される/dev/null
ようにするためです。)grep
これは、Solarisを含むすべてのPOSIXシステムに適用されます。正しく機能しない唯一の90年代以降、システムは古い(現在は非常に古い)GNUシステムです。
GNUはもともと次の-print0
述語と-0
オプションを導入しましたxargs
。
find /path/to/parent -type f -print0 | xargs -0 grep 'XXX' /dev/null
この機能をサポートする他の実装がありますが、Solarisはそうではありません。
上記では、理論的にはファイルなしで実行されないようにする-r
オプションを追加したいのですが、次のようには機能しません。grep
持ち運べるこの特別なケースでは機能的な違いはありません。
答え2
GNUを使用するgrep
(インストールされている場合):
ggrep -A3 -B23 'word' -R /log/
これにより、フォルダ内のすべてのファイルが正規表現と一致することを確認し、出力とword
ファイルのパスが表示されます。
GNUはgrep
この-R
フラグをサポートしています。
答え3
/usr/sfw/bin/ggrep
Solarisでは、次のパスに存在するggrepを使用できます。
/usr/sfw/bin/ggrep -H 'search-term' <file-name>*
特定の単語で始まる一連のファイル名から検索語を検索します。