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