Ich suche nach Dateien basierend auf einem regulären Ausdruck und versuche dann, diese Dateien nach Inhalten zu durchsuchen. So habe ich zum Beispiel so etwas
#Find all C++ files that match a certain pattern and then search them
find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>"
Das Problem, auf das ich stoße, ist, dass einige der Pfade Leerzeichen enthalten, was verwirrt xargs. Ich weiß, dass ich, wenn ich nur verwenden würde find, das -print0Argument (zusammen mit dem -0Argument on xargs) verwenden könnte, um zu verhindern, dass xargs Leerzeichen als Trennzeichen behandelt. Gibt es etwas ähnliches mit grep?
Oder gehe ich dieses Problem völlig falsch an? Naiv, findum grepfür xargs grepmich Sinn zu machen, aber ich bin offen für andere Ansätze, die die gleichen Ergebnisse liefern.
xargsindem Sie-iParameter, a lacat sample.txt | grep "pat t ern" | xargs -i grep "{}"- die geschweiften Klammern sagen sie , wo das Argument zu positionieren. Das Handbuch sagt mir, dass-ies veraltet ist,-Ialso lohnt es sich vielleicht auch, einen Blick darauf zu werfen.