Pertanyaan Bagaimana cara menghitung semua baris kode dalam suatu direktori secara rekursif?


Kami punya aplikasi PHP dan ingin menghitung semua baris kode di bawah direktori tertentu dan subdirektorinya. Kami tidak perlu mengabaikan komentar, karena kami hanya mencoba mendapatkan ide kasar.

wc -l *.php 

Perintah itu berfungsi dengan baik dalam direktori tertentu, tetapi mengabaikan subdirektori. Saya berpikir ini mungkin berhasil, tetapi itu kembali 74, yang pasti tidak terjadi ...

find . -name '*.php' | wc -l

Apa sintaks yang benar untuk dimasukkan ke dalam semua file?


1257
2017-08-31 17:42


asal


Jawaban:


Mencoba:

find . -name '*.php' | xargs wc -l

Alat SLOCCount dapat membantu juga.

Ini akan memberikan baris kode sumber yang akurat untuk apa pun hierarki Anda mengarahkannya ke, serta beberapa statistik tambahan.


2149
2017-08-31 17:50



Untuk satu baris lainnya:

( find ./ -name '*.php' -print0 | xargs -0 cat ) | wc -l

bekerja pada nama dengan spasi, hanya menghasilkan satu angka.


393
2017-08-31 20:26



Jika menggunakan Bash versi terbaru (atau ZSH), itu jauh lebih mudah:

wc -l **/*.php

Di shell Bash ini membutuhkan globstar opsi yang akan diatur, jika tidak, ** glob-operator tidak rekursif. Untuk mengaktifkan pengaturan ini, masalah

shopt -s globstar

Untuk membuatnya permanen, tambahkan ke salah satu file inisialisasi (~/.bashrc, ~/.bash_profile dll.).


349
2018-02-04 15:11



Anda dapat menggunakan cloc utilitas yang dibangun untuk tujuan yang tepat ini. Ini melaporkan setiap jumlah baris di setiap bahasa, bersama dengan berapa banyak dari mereka adalah komentar, dll.

Contoh penggunaan dan keluaran:

$ cloc --exclude-lang=DTD,Lua,make,Python .
    2570 text files.
    2200 unique files.                                          
    8654 files ignored.

http://cloc.sourceforge.net v 1.53  T=8.0 s (202.4 files/s, 99198.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Javascript                    1506          77848         212000         366495
CSS                             56           9671          20147          87695
HTML                            51           1409            151           7480
XML                              6           3088           1383           6222
-------------------------------------------------------------------------------
SUM:                          1619          92016         233681         467892
-------------------------------------------------------------------------------

214
2018-02-25 18:29



Pada sistem UNIX-like, ada alat yang disebut cloc yang menyediakan statistik kode.

Saya berlari di direktori acak di basis kode kami mengatakan:

      59 text files.
      56 unique files.                              
       5 files ignored.

http://cloc.sourceforge.net v 1.53  T=0.5 s (108.0 files/s, 50180.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C                               36           3060           1431          16359
C/C++ Header                    16            689            393           3032
make                             1             17              9             54
Teamcenter def                   1             10              0             36
-------------------------------------------------------------------------------
SUM:                            54           3776           1833          19481
-------------------------------------------------------------------------------

87
2018-05-16 16:03



Anda tidak menentukan berapa banyak file yang ada atau apa output yang diinginkan. Apa ini yang kamu cari:

find . -name '*.php' | xargs wc -l

29
2017-08-31 17:48



Namun variasi lain :)

$ find -name '*.php' | xargs cat | wc -l

Edit: ini akan memberikan jumlah total, bukan file-demi-file.


20
2017-08-01 12:01



Ada alat kecil yang disebut sloccount untuk menghitung baris kode di direktori. Perlu dicatat bahwa itu lebih dari yang Anda inginkan karena mengabaikan baris / komentar kosong, mengelompokkan hasil per bahasa pemrograman dan menghitung beberapa statistik.


17
2017-08-31 17:52