-rスイッチを使用せずにgrepを使用して親フォルダのサブフォルダにあるファイル内のテキスト文字列を見つける方法

-rスイッチを使用せずにgrepを使用して親フォルダのサブフォルダにあるファイル内のテキスト文字列を見つける方法

私はSolaris 10を使用していますが、grep1つはin /usr/bin、もう1つはoutです/usr/xpg4/bin。使用方法に関する情報を探していましたが、grepすべての回答に私のバージョンの-r切り替えに関する情報が記載されています。-Rgrep

ベストアンサー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持ち運べるこの特別なケースでは機能的な違いはありません。

おすすめ記事