Saya seorang pemula linux. Saya perlu mencari string "teststring" di semua file * .java yang berada di bawah / home / user1 / (termasuk subfolder). Bagaimana saya bisa melakukannya di linux melalui perintah shell.
Saya seorang pemula linux. Saya perlu mencari string "teststring" di semua file * .java yang berada di bawah / home / user1 / (termasuk subfolder). Bagaimana saya bisa melakukannya di linux melalui perintah shell.
Jawaban:
Cara termudah adalah dengan menggunakan fitur GNU grep:
grep -r --include '*.java' teststring /home/user1
Jika Anda pernah menggunakan varian unix lain yang tidak memiliki GNU grep, berikut adalah cara yang portabel:
find /home/user1 -name '*.java' -exec grep teststring {} +
grep -r teststring .
menggunakan ack Anda cukup mengetik:cd /home/user01 && ack --java teststring
ack --java teststring /home/user01
Menemukannya. Mempostingnya karena dapat membantu seseorang.
find /home/user01 -name *.java | xargs grep "teststring"
Harap perbaiki jika ada cara yang lebih baik.
-print0
dan -0
ketika perpipaanfind
ke xargs
berfungsi dengan baik dengan file yang mungkin memiliki spasi atau baris baru dalam namanya:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"