Sto cercando i file in base a un'espressione regolare e quindi sto cercando di cercare tali contenuti. Quindi, per esempio, ho qualcosa del genere
#Find all C++ files that match a certain pattern and then search them
find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>"
Il problema in cui mi imbatto è che alcuni dei percorsi hanno degli spazi, il che confonde xargs
. So che se stavo solo usando find
, potrei usare l' -print0
argomento (insieme -0
all'argomento su xargs
) per impedire agli xargs di trattare gli spazi come delimitatori. C'è qualcosa di simile con grep
?
O sto affrontando questo problema in modo completamente sbagliato? Ingenuamente, find
al grep
di xargs grep
senso per me, ma sono aperto ad altri approcci che producono gli stessi risultati.
xargs
usando il-i
parametro, a lacat sample.txt | grep "pat t ern" | xargs -i grep "{}"
- le parentesi graffe gli dicono dove posizionare l'argomento. Il manuale mi dice che-i
è deprecato a favore,-I
quindi forse vale la pena dare un'occhiata anche a quello.