Saya sedang menjalankan find . -name pattern
untuk menemukan beberapa file, dan saya ingin mendapatkan jumlah baris dalam file ini secara elegan.
Bagaimana saya bisa mencapainya?
Jika versi Anda wc
dan find
mendukung opsi yang diperlukan:
find . -name pattern -print0 | wc -l --files0-from=-
yang akan memberi Anda jumlah per file sekaligus total. Jika Anda hanya menginginkan totalnya:
find . -name pattern -print0 | wc -l --files0-from=- | tail -n 1
Opsi lain untuk versi find
yang mendukungnya:
find . -name pattern -exec cat {} + | wc -l
$ find . -name '*.txt' -exec cat '{}' \; | wc -l
Mengambil setiap file dan cat
kemudian, mem-pipe semua itu melalui wc
set ke mode penghitungan baris.
Atau, nama file aneh [belum diuji] aman:
$ find . -name '*.txt' -print0 | xargs -0 cat | wc -l
Sayangnya hasil dari:
find . -iname "yourpattern" -exec cat '{}' \; |wc -l
menyisipkan garis ekstra. Untuk mendapatkan penghitungan garis yang andal, Anda harus melakukan:
find . -name "yourpattern" -print0 | xargs -0 wc -l
Dengan cara ini Anda menangani spasi dengan benar, dapatkan jumlah baris untuk setiap file, dan jumlah total baris, lebih cepat dan bergaya !!!
Cara mudah lain untuk menemukan tidak. baris dalam file:
Contoh:
sumber
Belum diuji, tetapi bagaimana dengan sesuatu seperti:
sumber
akan bekerja secara efisien.
sumber