Saya mencari file berdasarkan ekspresi reguler, dan kemudian saya mencoba mencari file tersebut untuk konten. Jadi, misalnya, saya punya sesuatu seperti
#Find all C++ files that match a certain pattern and then search them
find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>"
Masalah yang saya hadapi adalah bahwa beberapa jalur memiliki ruang di dalamnya, yang membingungkan xargs. Saya tahu bahwa jika saya hanya menggunakan find, saya bisa menggunakan -print0argumen (bersama dengan -0argumen pada xargs) untuk menjaga xargs dari memperlakukan ruang sebagai pembatas. Apakah ada yang serupa grep?
Atau apakah saya mendekati masalah ini dengan cara yang salah sepenuhnya? Naif, finduntuk grepuntuk xargs grepmasuk akal bagi saya, tapi aku terbuka untuk pendekatan lain yang menghasilkan hasil yang sama.
xargsmenggunakan-iparameter, alacat sample.txt | grep "pat t ern" | xargs -i grep "{}"- kurung kurawal memberi tahu di mana posisi argumen. Manual mengatakan kepada saya bahwa-isudah usang dalam mendukung-Ijadi mungkin perlu melihat itu juga.