-rスイッチを使用せずにgrepを使用して、親フォルダーのサブフォルダー内のファイル内のテキスト文字列を検索するにはどうすればよいですか?

デミシープ

Solaris 10を使用していて、2つのgrepバージョンが/usr/binあり/usr/xpg4/binます。を使用して、親ディレクトリのサブフォルダ内のファイル内のテキストを検索する方法についての回答を探していますgrepすべての答えはについて話す-rまたは-R私は私のバージョンで利用できていないスイッチgrep

cuonglm

標準(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必要がありますが、それは移植性が低く、この特定のケースでは機能的な違いはありません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ