正規表現に基づいてファイルを検索してから、それらのファイルのコンテンツを検索しようとしています。たとえば、私は次のようなものを持っています
#Find all C++ files that match a certain pattern and then search them
find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>"
私が遭遇している問題は、いくつかのパスにスペースが含まれていることですxargs。だけを使用している場合はfind、-print0引数を(-0引数on と共にxargs)使用して、xargsがスペースを区切り文字として扱わないようにすることができます。同様のものはありgrepますか?
それとも、この問題に完全に間違った方法で取り組んでいますか?単純に、findto は私grepにxargs grepは理にかなっていますが、同じ結果が得られる他のアプローチを受け入れます。
xargsを使用して引数を配置できます。中括弧は、引数を配置する場所を示します。マニュアルは私に非難されていることを教えてくれますので、それも見てみる価値があるかもしれません。-icat sample.txt | grep "pat t ern" | xargs -i grep "{}"-i-I