Jawaban:
xargsmengharapkan input dalam format yang tidak dihasilkan perintah lain, sehingga sulit digunakan secara efektif. Apa yang salah di sini adalah bahwa Anda memiliki file yang namanya harus dikutip pada input xargs(mungkin mengandung a ').
Jika grep Anda mendukung -ratau -Ropsi untuk pencarian rekursif, gunakan itu.
grep -r word .
Jika tidak, gunakan -execprimer dari find. Ini adalah cara biasa untuk mencapai efek yang sama seperti xargs, kecuali tanpa batasan pada nama file. Versi terbaru yang wajar findmemungkinkan Anda untuk mengelompokkan beberapa file dalam satu panggilan ke perintah tambahan. Lulus /dev/nulluntuk grepmemastikan bahwa itu akan menampilkan nama file di depan setiap pertandingan, bahkan jika itu dipanggil pada satu file.
find . -type f -exec grep word /dev/null {} +
Versi findyang lebih lama (pada sistem yang lebih lama atau OpenBSD, atau utilitas yang dikurangi seperti BusyBox) hanya dapat memanggil perintah tambahan pada satu file pada satu waktu.
find . -type f -exec grep word /dev/null {} \;
Beberapa versi finddan xargsmemiliki ekstensi yang memungkinkan mereka berkomunikasi dengan benar, menggunakan karakter nol untuk memisahkan nama file sehingga tidak perlu mengutip. Saat ini, hanya OpenBSD yang memiliki fitur ini tanpa memiliki -exec … {} +.
find . -type f -print0 | xargs -0 grep word /dev/null
Saya kira Anda maksud opsi pertama
grep rekursif, untuk mencari konten di dalam file
grep -R "content_to_search" /path/to/directory
Itu rekursif, untuk mencari file yang cocok
ls -lR | grep "your_search"
Jika Anda memiliki alat GNU (yang Anda lakukan jika tag Linux akurat) maka Anda dapat menggunakan -print0dan -0untuk mengatasi masalah mengutip yang biasa:
find . -type f -print0 | xargs -0 grep word
Di direktori saat ini Anda dapat menggunakan grep:
grep -irl root .
Saya pikir Anda ingin menemukan string dalam file
Mencoba find . -name "*" | xargs grep -l "string"
/dev/null. Ini adalah gangguan ketika format output dapat bervariasi, tergantung pada berapa banyak file yang cocok ... terima kasih.