Apa yang setara dengan Windows dari "wc-l"?

53

Apa yang setara dengan Windows untuk perintah Linux / Unix wc -l?

Pada dasarnya, bagaimana Anda menghitung jumlah garis keluaran dari suatu perintah pada baris perintah Windows?

Niall
sumber
Anda juga dapat menggunakan alat GnuWin32 dan benar-benar memiliki wc(well, wc.exe...) gnuwin32.sourceforge.net
ivanivan

Jawaban:

66

Linux / Unix "line count" perintah wc -l,, memiliki setara dengan Windows find /c /v "".

Bagaimana cara kerjanya?

Menurut Raymond Chen dari The Old New Thing , fungsi ini sejak itu

Ini adalah kekhasan khusus dari findperintah bahwa string null diperlakukan sebagai tidak pernah cocok.

Inverted ( /v) count ( /c) dengan demikian secara efektif menghitung semua garis; karenanya, jumlah baris.

Contoh penggunaan

Untuk menghitung jumlah file yang dimodifikasi dalam copy pekerjaan subversi:

svn status -q | find /c /v ""

Perintah seperti itu dapat digunakan untuk menandai bangunan sebagai "kotor" jika penghitungan tidak 0, yaitu, ada perubahan yang tidak dikomit di copy pekerjaan.

Untuk mendapatkan jumlah baris semua file Java Anda:

(for /r %f in (*.java) do @type "%f") | find /c /v ""

Perintah find /c /v ""juga dapat ditambahkan ke file batch jika diperlukan. Ingatlah untuk menduplikasi %karakter dalam file batch.


PowerShell

Setara PowerShell yang berfungsi adalah Measure-Object -linedengan beberapa pemformatan tambahan yang diperlukan, misalnya, (daftar direktori untuk kesederhanaan),

(ls | Measure-Object -line).Lines
Niall
sumber
1
Terima kasih telah berbagi. Dibuat inti untuk referensi - gist.github.com/a4ede7054b2ce5ee2708dd49bbd5a1a1
maheshwaghmare
11

Di PowerShell, untuk mendapatkan jumlah baris semua file java Anda:

type *.java | Measure-Object -line
pengguna3808394
sumber
3
selamat datang di superuser: - pertanyaannya adalah tentang CMD tidak PowerShell, jika Anda dapat menjawab OP, harap edit jawaban Anda. ini mungkin membantu Bagaimana Menjawab , Bagaimana Mengajukan Pertanyaan , pusat bantuan lagi selamat datang di superuer dan saya harap Anda kembali, terima kasih
mic84
9
Terima kasih @ mic84. Pertanyaannya adalah tentang baris perintah Windows. Dan Microsoft berusaha mengganti CMD dengan PowerShell: networkworld.com/article/3143196/windows/… Jadi ini adalah jawaban yang cukup berguna.
user3808394
-2

findstr / n / r.

Ini adalah regex terbatas, jadi / n menunjukkan nomor baris pertandingan, dan "." cocok dengan char apa pun.

Gary Gatten
sumber
2
Pertanyaannya bukan bagaimana menampilkan file dengan nomor baris; pertanyaannya adalah bagaimana menentukan jumlah baris dalam file.
Scott
Lihatlah jumlah baris terakhir, dan itu berapa banyak baris dalam file. Perintah "find" juga berfungsi, tetapi mungkin findstr akan berguna dalam beberapa kasus. Saya telah menemukannya.
Gary Gatten
Itu bukan jawaban yang sangat ramah pengguna, terutama mengingat kami telah menerima beberapa jawaban lain yang lebih langsung. Tetapi, jika itu jawaban Anda, silakan  edit  jawaban Anda untuk membuatnya lebih jelas dan lebih lengkap.
Scott