次のようにファイル内の2つのパターンを検索するために、findでgrepを2回使用することがよくあります。
find . -name \*.xml | xargs grep -l "<beans" | xargs grep singleton
それから私はもちろん上記のコマンドを破ったスペースのあるファイルに出くわしました。スペースを処理するために、次のように変更しました。
find . -name \*.xml -print0 | xargs -0 grep -l "<beans" | xargs grep singleton
オプション-print0は、findにスペースの代わりにprint nullを区切り文字として使用するように指示し、-0はxargsにnullを予期するように指示します。これは、探しているファイルのいずれにもパスにスペースが含まれていない限り機能しますが、スペースがあると機能しなくなります。
したがって、必要なのは、grepに改行ではなくスピアターとしてnullを出力するように指示するフラグです。
何か案は?