นับบรรทัดของโค้ด
cloc นับบรรทัดว่าง บรรทัดความคิดเห็น และบรรทัดฟิสิคัลของซอร์สโค้ดในภาษาการเขียนโปรแกรมหลายภาษา
รุ่นล่าสุด: v2.02 (2 ส.ค. 2024)
cloc ย้ายไปที่ GitHub ในเดือนกันยายน 2558 หลังจากโฮสต์ที่ http://cloc.sourceforge.net/ ตั้งแต่เดือนสิงหาคม 2549
ขั้นตอนที่ 1: ดาวน์โหลด cloc (หลายวิธี ดูด้านล่าง) หรือเรียกใช้อิมเมจนักเทียบท่าของ cloc ไฟล์ปฏิบัติการ Windows ไม่มีข้อกำหนด cloc เวอร์ชันต้นทางต้องใช้ล่าม Perl และ cloc เวอร์ชัน Docker จำเป็นต้องมีการติดตั้ง Docker
ขั้นตอนที่ 2: เปิดเทอร์มินัล ( cmd.exe
บน Windows)
ขั้นตอนที่ 3: เรียกใช้ cloc เพื่อนับไฟล์ต้นฉบับ ไดเร็กทอรี ไฟล์เก็บถาวร หรือคอมมิตคอมไพล์ของคุณ ชื่อปฏิบัติการจะแตกต่างกันไปขึ้นอยู่กับว่าคุณใช้เวอร์ชันแหล่งที่มาของการพัฒนา ( cloc
) แหล่งที่มาสำหรับเวอร์ชันที่เผยแพร่ ( cloc-2.02.pl
) หรือปฏิบัติการ Windows ( cloc-2.02.exe
)
ในหน้านี้ cloc
เป็นคำทั่วไปที่ใช้เพื่ออ้างถึงสิ่งเหล่านี้
รวมการรักษาความปลอดภัยมีวิดีโอ YouTube ที่แสดงขั้นตอนการทำงาน
ไฟล์
พรอมต์> cloc hello.c ไฟล์ข้อความ 1 ไฟล์ 1 ไฟล์ที่ไม่ซ้ำกัน 0 ไฟล์ถูกละเว้น https://github.com/AlDanial/cloc v 1.65 T=0.04 s (28.3 ไฟล์/s, 340.0 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - ค 1 0 7 5 -
ไดเรกทอรี
พรอมต์> cloc gcc-5.2.0/gcc/c ไฟล์ข้อความ 16 ไฟล์ 15 ไฟล์ที่ไม่ซ้ำกัน ละเว้น 3 ไฟล์ https://github.com/AlDanial/cloc v 1.65 T=0.23 s (57.1 ไฟล์/s, 188914.0 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - ค 10 4680 6621 30812 C/C++ ส่วนหัว 3 99 286 496 - ผลรวม: 13 4779 6907 31308 -
ที่เก็บถาวร
เราจะดึงไฟล์ zip ต้นฉบับของ cloc จาก GitHub จากนั้นนับเนื้อหา:
พรอมต์> wget https://github.com/AlDanial/cloc/archive/master.zip พรอมต์> cloc master.zip https://github.com/AlDanial/cloc v 1.65 T=0.07 s (26.8 ไฟล์/s, 141370.3 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - เพิร์ล 2 725 1103 8713 - ผลรวม: 2 725 1103 8713 -
พื้นที่เก็บข้อมูล git โดยใช้การคอมมิตเฉพาะ
ตัวอย่างนี้ใช้โค้ดจาก PuDB ซึ่งเป็นดีบักเกอร์ Python ที่ยอดเยี่ยม
พรอมต์> git clone https://github.com/inducer/pudb.git พรอมต์> cd pudb พรอมต์> cloc 6be804e07a5db ไฟล์ข้อความ 48 ไฟล์ ไฟล์ที่ไม่ซ้ำกัน 41 ไฟล์ 8 ไฟล์ถูกละเว้น github.com/AlDanial/cloc v 1.99 T=0.04 s (1,054.9 ไฟล์/s, 189646.8 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - หลาม 28 1519 728 4659 ข้อความที่มีโครงสร้างใหม่ 6 102 20 203 ยอเอ็มแอล 2 9 2 75 บอร์นเชลล์ 3 6 0 17 ข้อความ 1 0 0 11 ทำ 1 4 6 10 - ผลรวม: 41 1640 756 4975 -
แต่ละไดเร็กทอรีย่อยของไดเร็กทอรีเฉพาะ
สมมติว่าคุณมีไดเร็กทอรีที่มีโปรเจ็กต์ที่จัดการ git ที่แตกต่างกันสามโปรเจ็กต์ ได้แก่ Project0, Project1 และ Project2 คุณสามารถใช้ความสามารถในการวนซ้ำของเชลล์เพื่อนับโค้ดในแต่ละโค้ดได้ ตัวอย่างนี้ใช้ bash (เลื่อนลงเพื่อดูตัวอย่าง cmd.exe):
พรอมต์> สำหรับ d ใน ./*/ ; ทำ (ซีดี "$d" && echo "$d" && cloc --vcs git); เสร็จแล้ว ./โครงการ0/ ไฟล์ข้อความ 7 ไฟล์ 7 ไฟล์ที่ไม่ซ้ำกัน ละเว้น 1 ไฟล์ github.com/AlDanial/cloc v 1.71 T=0.02 s (390.2 ไฟล์/s, 25687.6 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - ง 4 61 32 251 มาร์กดาวน์ 1 9 0 38 ทำ 1 0 0 4 - ผลรวม: 6 70 32 293 - ./โครงการ1/ ไฟล์ข้อความ 7 ไฟล์ 7 ไฟล์ที่ไม่ซ้ำกัน 0 ไฟล์ถูกละเว้น github.com/AlDanial/cloc v 1.71 T=0.02 s (293.0 ไฟล์/s, 52107.1 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - ไป 7 165 282 798 - ผลรวม: 7 165 282 798 - ./โครงการ2/ ไฟล์ข้อความ 49 ไฟล์ ไฟล์ที่ไม่ซ้ำกัน 47 ไฟล์ 13 ไฟล์ถูกละเว้น github.com/AlDanial/cloc v 1.71 T=0.10 s (399.5 ไฟล์/s, 70409.4 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - หลาม 33 1226 1026 3017 ค 4 327 337 888 มาร์กดาวน์ 1 11 0 28 YAML 1 0 2 12 - ผลรวม: 39 1564 1365 3945 -
แต่ละไดเร็กทอรีย่อยของไดเร็กทอรีเฉพาะ (Windows/cmd.exe)
สำหรับ /D %I ใน (.*) ทำ cd %I && cloc --vcs git && cd ..
cloc นับบรรทัดว่าง บรรทัดความคิดเห็น และบรรทัดฟิสิคัลของซอร์สโค้ดในภาษาการเขียนโปรแกรมหลายภาษา ด้วยฐานโค้ดสองเวอร์ชัน cloc สามารถคำนวณความแตกต่างในบรรทัดว่าง ความคิดเห็น และแหล่งที่มา มันถูกเขียนในภาษา Perl ทั้งหมด โดยไม่มีการขึ้นต่อกันภายนอกการกระจายมาตรฐานของ Perl v5.6 และสูงกว่า (โค้ดจากโมดูลภายนอกบางตัวถูกฝังอยู่ภายใน cloc) และค่อนข้างพกพาได้ เป็นที่ทราบกันว่า cloc ทำงานบน Linux, FreeBSD, NetBSD, OpenBSD, macOS, AIX, HP-UX, Solaris, IRIX, z/OS และ Windows ได้หลากหลาย (ในการรัน cloc เวอร์ชันต้นทาง Perl บน Windows จำเป็นต้องมี ActiveState Perl 5.6.1 หรือสูงกว่า, Strawberry Perl, ระบบย่อย Windows สำหรับ Linux, Cygwin, MobaXTerm ที่ติดตั้งปลั๊กอิน Perl หรือมีสภาพแวดล้อมและเทอร์มินัล mingw เช่นที่จัดทำโดย Git สำหรับ Windows หรืออีกวิธีหนึ่งสามารถใช้ไบนารี Windows ของ cloc ที่สร้างด้วย PAR::Packer เพื่อทำงานบนคอมพิวเตอร์ Windows ที่ไม่มีทั้ง Perl และ Cygwin)
นอกเหนือจากการนับโค้ดในไฟล์ข้อความ ไดเร็กทอรี และที่เก็บ git แต่ละไฟล์แล้ว cloc ยังสามารถนับโค้ดในไฟล์เก็บถาวร เช่น .tar
(รวมถึงเวอร์ชันบีบอัด), .zip
, Python wheel .whl
, Jupyter notebook .ipynb
, .rpm
ต้นทาง .rpm
หรือ .src
(ต้องใช้ rpm2cpio
) และไฟล์ Debian .deb
(ต้องใช้ dpkg-deb
)
cloc มีโค้ดจาก SLOCCount ของ David Wheeler, Damian Conway และโมดูล Perl ของ Abigail Regexp::Common, โมดูล Perl ของ Sean M. Burke Win32::Autoglob และอัลกอริทึมโมดูล Perl ของ Tye McQueen::Diff ปัจจัยระดับภาษาได้มาจากเว็บไซต์ Mayes Consulting, LLC http://softwareestimator.com/IndustryData2.htm
การออกใหม่จะปรากฏทุก ๆ หกเดือน
docker run --rm -v $PWD :/tmp aldanial/cloc
docker run --rm -v " / $( pwd -W ) " :/tmp aldanial/cloc
วิธีการติดตั้งเหล่านี้อาจใช้ได้ผลสำหรับคุณ ขึ้นอยู่กับระบบปฏิบัติการของคุณ (ทั้งหมดยกเว้นสองรายการสุดท้ายสำหรับ Windows ต้องใช้ล่าม Perl):
npm install -g cloc # https://www.npmjs.com/package/cloc
sudo apt install cloc # Debian, Ubuntu
sudo yum install cloc # Red Hat, Fedora
sudo dnf install cloc # Fedora 22 or later
sudo pacman -S cloc # Arch
sudo emerge -av dev-util/cloc # Gentoo https://packages.gentoo.org/packages/dev-util/cloc
sudo apk add cloc # Alpine Linux
doas pkg_add cloc # OpenBSD
sudo pkg install cloc # FreeBSD
sudo port install cloc # macOS with MacPorts
brew install cloc # macOS with Homebrew
winget install AlDanial.Cloc # Windows with winget
choco install cloc # Windows with Chocolatey
scoop install cloc # Windows with Scoop
หมายเหตุ : ฉันไม่ได้ควบคุมแพ็คเกจเหล่านี้ หากคุณพบจุดบกพร่องใน cloc โดยใช้แพ็คเกจใดแพ็คเกจหนึ่งข้างต้น ให้ลองใช้ cloc ที่ดึงมาจากเวอร์ชันเสถียรล่าสุดที่นี่บน GitHub (ลิงก์ด้านล่าง) ก่อนที่จะส่งรายงานปัญหา
https://github.com/AlDanial/cloc/releases/latest
https://github.com/AlDanial/cloc/raw/master/cloc
cloc ได้รับอนุญาตภายใต้สัญญาอนุญาตสาธารณะทั่วไปของ GNU เวอร์ชัน 2 ไม่รวมส่วนที่คัดลอกมาจากแหล่งอื่น รหัสที่คัดลอกมาจากโมดูล Regexp::Common, Win32::Autoglob และ Algorithm::Diff Perl อยู่ภายใต้ Artistic License
cloc มีคุณสมบัติมากมายที่ทำให้ใช้งานง่าย ละเอียด ขยายได้ และพกพาสะดวก:
หาก cloc ไม่ตรงกับความต้องการของคุณ นี่คือตัวนับอื่น ๆ ที่ให้บริการฟรีที่ควรพิจารณา:
ข้อมูลอ้างอิงอื่นๆ:
แม้ว่า cloc ไม่ต้องการโมดูล Perl ภายนอกที่พบในการแจกแจงแบบมาตรฐาน แต่ cloc ก็อาศัยโมดูลภายนอกเพียงไม่กี่โมดูล โค้ดจากโมดูลภายนอกสามโมดูลเหล่านี้ ได้แก่ Regexp::Common, Win32::Autoglob และ Algorithm::Diff ถูกฝังอยู่ภายใน cloc โมดูลที่สี่ Digest::MD5 จะใช้เฉพาะในกรณีที่พร้อมใช้งานเท่านั้น หาก cloc พบ Regexp::Common หรือ Algorithm::Diff ติดตั้งอยู่ในเครื่อง ระบบจะใช้การติดตั้งเหล่านั้น หากไม่เป็นเช่นนั้น cloc จะติดตั้งส่วนของ Regexp::Common และ/หรือ Algorithm:Diff ที่จำเป็นให้กับไดเร็กทอรีชั่วคราวที่สร้างขึ้นเมื่อเริ่มต้นการรัน cloc จากนั้นจะถูกลบออกเมื่อการรันเสร็จสมบูรณ์ รหัสที่จำเป็นจาก Regexp::Common v2.120 และ Algorithm::Diff v1.1902 ถูกฝังอยู่ภายในซอร์สโค้ด cloc (ดูรูทีนย่อย Install_Regexp_Common()
และ Install_Algorithm_Diff()
) ต้องการเพียงสามบรรทัดจาก Win32::Autoglob และสิ่งเหล่านี้รวมอยู่ใน cloc โดยตรง
นอกจากนี้ cloc จะใช้ Digest::MD5 เพื่อตรวจสอบเอกลักษณ์ของไฟล์อินพุตที่มีขนาดเท่ากัน หากติดตั้ง Digest::MD5 ในเครื่อง
ตัวเลือกการประมวลผลแบบขนาน --processes= N ได้รับการแนะนำพร้อมกับ cloc เวอร์ชัน 1.76 เพื่อให้ทำงานได้เร็วขึ้นบนเครื่องแบบมัลติคอร์ อย่างไรก็ตาม หากต้องการใช้งาน จะต้องติดตั้งโมดูล Parallel::ForkManager ไว้ โมดูลนี้ทำงานไม่น่าเชื่อถือบน Windows ดังนั้นการประมวลผลแบบขนานจะทำงานบนระบบปฏิบัติการที่คล้ายกับ Unix เท่านั้น
ไบนารีของ Windows สร้างขึ้นบนคอมพิวเตอร์ที่มีทั้ง Regexp::Common และ Digest::MD5 ติดตั้งอยู่ในเครื่อง
ตัวเลือกที่แข็งแกร่งที่สุดสำหรับการสร้างปฏิบัติการ Windows ของ cloc คือการใช้ Perl Development Kit ของ ActiveState ประกอบด้วยยูทิลิตี้ perlapp
ซึ่งสามารถสร้างไบนารี Windows, Mac และ Linux แบบสแตนด์อโลนของซอร์สโค้ด Perl ได้
perl2exe จะทำเคล็ดลับด้วย หากคุณมี perl2exe
ให้แก้ไขบรรทัด 84-87 ในซอร์สโค้ด cloc สำหรับการแก้ไขโค้ดเล็กน้อยที่จำเป็นในการทำให้ cloc Windows ปฏิบัติการได้
มิฉะนั้น หากต้องการสร้างไฟล์ปฏิบัติการ Windows ด้วย pp
จาก PAR::Packer
ขั้นแรกให้ติดตั้งการแจกจ่าย Perl บน Windows (เช่น Strawberry Perl หรือ ActivePerl) โดยทำตามคำแนะนำ จากนั้น เปิดพรอมต์คำสั่ง หรือที่เรียกว่าหน้าต่าง DOS และติดตั้งโมดูล PAR::Packer สุดท้ายให้เรียกใช้คำสั่ง pp
ที่ติดตั้งใหม่ด้วยซอร์สโค้ด cloc เพื่อสร้างไฟล์ .exe
:
C:> cpan -i ย่อย::MD5 C:> cpan -i Regexp::ทั่วไป C:> cpan -i อัลกอริทึม::Diff C:> cpan -i PAR::Packer C:> cpan -i Win32::LongPath C:> pp -M Win32::LongPath -M เข้ารหัส::Unicode -M Digest::MD5 -c -x -o cloc-2.02.exe cloc-2.02.pl
คำแนะนำที่แตกต่างออกไปข้างต้นคือ หากคุณติดตั้ง Strawberry Perl เวอร์ชันพกพา คุณจะต้องเรียกใช้ portableshell.bat
ก่อนเพื่อตั้งค่าสภาพแวดล้อมของคุณอย่างเหมาะสม
ไฟล์ปฏิบัติการ Windows ในส่วนการเผยแพร่ cloc-2.02.exe สร้างขึ้นบนคอมพิวเตอร์ Windows 10 64 บิตโดยใช้ Strawberry Perl 5.30.2 และ PAR::Packer เพื่อสร้าง . .exe
ตามหลักการแล้ว ไม่มีใครต้องการปฏิบัติการ Windows เนื่องจากมีล่าม Perl ติดตั้งอยู่ในเครื่องของตนและสามารถเรียกใช้ไฟล์ต้นฉบับ cloc ได้ อย่างไรก็ตาม สำหรับเครื่อง Windows ขององค์กรที่มีการจัดการจากส่วนกลาง การดำเนินการนี้อาจเป็นเรื่องยากหรือเป็นไปไม่ได้
ไฟล์ปฏิบัติการ Windows ที่เผยแพร่ด้วย cloc นั้นจัดทำขึ้นเพื่อเป็นความพยายามสูงสุดของไวรัสและ .exe
ที่ปราศจากมัลแวร์ เราขอแนะนำให้คุณเรียกใช้โปรแกรมสแกนไวรัสของคุณเองกับโปรแกรมปฏิบัติการ และตรวจสอบเว็บไซต์ต่างๆ เช่น https://www.virustotal.com/ รายการสำหรับเวอร์ชันล่าสุดคือ:
cloc-2.02-winget.exe: (รวม PR 850 เพื่ออนุญาตให้เรียกใช้จาก symlink บน Windows) https://www.virustotal.com/gui/file/be033061e091fea48a5bc9e8964cee0416ddd5b34bd5226a1c9aa4b30bdba66a?nocache=1
cloc-2.02.exe: https://www.virustotal.com/gui/file/369ed76125f7399cd582d169adf39a2e08ae5066031fea0cc8b2836ea50e7ce2?nocache=1
cloc-2.00.exe: https://www.virustotal.com/gui/file/7a234ef0cb495de1b5776acf88c5554e2bab1fb02725a5fb85756a6db3121c1f
cloc-1.98.exe: https://www.virustotal.com/gui/file/88615d193ec8c06f7ceec3cc1d661088af997798d87ddff331d9e9f9128a6782?nocache=1
cloc-1.96.1.exe: https://www.virustotal.com/gui/file/00b1c9dbbfb920dabd374418e1b86d2c24b8cd2b8705aeb956dee910d0d75d45?nocache=1
cloc-1.96.exe: https://www.virustotal.com/gui/file/54bf5f46fbaba7949c4eb2d4837b03c774c0ba587448a5bad9b8efc0222b1583?nocache=1
cloc-1.94.exe: https://www.virustotal.com/gui/file/b48a6002fb75fa66ec5d0c05a5c4d51f2ad22b5b025b7eb4e3945d18419c0952?nocache=1
cloc-1.92.exe: https://www.virustotal.com/gui/file/2668fcf8609c431e8934fe9e1866bc620c58d198c4eb262f1d3ef31ef4a690f7
cloc-1.90.exe: https://www.virustotal.com/gui/file/d655caae55486f9bac39f7e3c7b7553bcfcfe2b88914c79bfc328055f22b8a37/detection
cloc-1.88.exe: https://www.virustotal.com/gui/file/97d5d2631d1cccdbfd99267ab8a4cf5968816bbe52c0f9324e72e768857f642d/detection
cloc-1.86.exe: https://www.virustotal.com/gui/file/1b2e189df1834411b34534db446330d1c379b4bc008af3042ee9ade818c6a1c8/detection
cloc-1.84.exe: https://www.virustotal.com/gui/file/e73d490c1e4ae2f50ee174005614029b4fa2610dcb76988714839d7be68479af/detection
cloc-1.82.exe: https://www.virustotal.com/#/file/2e5fb443fdefd776d7b6b136a25e5ee2048991e735042897dbd0bf92efb16563/detection
cloc-1.80.exe: https://www.virustotal.com/#/file/9e547b01c946aa818ffad43b9ebaf05d3da08ed6ca876ef2b6847be3bf1cf8be/detection
cloc-1.78.exe: https://www.virustotal.com/#/file/256ade3df82fa92febf2553853ed1106d96c604794606e86efd00d55664dd44f/detection
cloc-1.76.exe: https://www.virustotal.com/#/url/c1b9b9fe909f91429f95d41e9a9928ab7c58b21351b3acd4249def2a61acd39d/detection
cloc-1.74_x86.exe: https://www.virustotal.com/#/file/b73dece71f6d3199d90d55db53a588e1393c8dbf84231a7e1be2ce3c5a0ec75b/detection
cloc 1.72 exe: https://www.virustotal.com/en/url/8fd2af5cd972f648d7a2d7917bc202492012484c3a6f0b48c8fd60a8d395c98c/analysis/
cloc 1.70 exe: https://www.virustotal.com/en/url/63edef209099a93aa0be1a220dc7c4c7ed045064d801e6d5daa84ee624fc0b4a/analysis/
cloc 1.68 exe: https://www.virustotal.com/en/file/c484fc58615fc3b0d5569b9063ec1532980281c3155e4a19099b11ef1c24443b/analysis/
cloc 1.66 exe: https://www.virustotal.com/en/file/54d6662e59b04be793dd10fa5e5edf7747cf0c0cc32f71eb67a3cf8e7a171d81/analysis/1453601367/
ไฟล์ปฏิบัติการ Windows ของ cloc เวอร์ชัน 1.60 และเก่ากว่า สร้างด้วย perl2exe ตามที่ระบุไว้ข้างต้น มีขนาดประมาณ 1.6 MB ในขณะที่เวอร์ชัน 1.62 และ 1.54 ที่สร้างด้วย PAR::Packer
มีขนาด 11 MB เวอร์ชัน 1.66 ที่สร้างขึ้นด้วย PAR::Packer
เวอร์ชันใหม่กว่า มีขนาดประมาณ 5.5 MB เหตุใด PAR::Packer
ไฟล์ปฏิบัติการจึงมีขนาดใหญ่กว่าไฟล์ที่สร้างด้วย perl2exe มาก ทฤษฎีของฉันคือ perl2exe ใช้ตรรกะการตัดแต่งต้นไม้ที่ชาญฉลาดกว่า PAR::Packer
แต่นั่นเป็นการเก็งกำไรล้วนๆ
cloc เป็นโปรแกรมบรรทัดคำสั่งที่รับไฟล์ ไดเร็กทอรี และ/หรือชื่อไฟล์เก็บถาวรเป็นอินพุต ต่อไปนี้เป็นตัวอย่างของการรัน cloc กับการกระจายซอร์ส Perl v5.22.0:
พรอมต์> cloc perl-5.22.0.tar.gz ไฟล์ข้อความ 5605 5386 ไฟล์ที่ไม่ซ้ำกัน 2176 ไฟล์ถูกละเว้น https://github.com/AlDanial/cloc v 1.65 T=25.49 s (134.7 ไฟล์/s, 51980.3 บรรทัด/s) - ไฟล์ภาษารหัสความคิดเห็นว่างเปล่า - เพิร์ล 2892 136396 184362 536445 ค 130 24676 33684 155648 ส่วนหัว C/C++ 148 9766 16569 147858 บอร์นเชลล์ 112 4044 6796 42668 ปาสคาล 8 458 1603 8592 XML 33 142 0 2410 YAML 49 20 15 2078 C++ 10 313 277 2033 ทำ 4 426 488 1986 อารัมภบท 12 438 2 1146 เจสัน 14 1 0 1037 yacc 1 85 76 998 ไฟล์ข้อความ Windows 1 102 11 489 ดอสชุดที่ 14 92 41 389 ไฟล์ทรัพยากร Windows 3 10 0 85 ง 1 5 7 8 ลิสป์ 2 0 3 4 - ผลรวม: 3434 176974 243934 903874 -
หากต้องการเรียกใช้ cloc บนคอมพิวเตอร์ Windows ให้เปิดหน้าต่างคำสั่ง (aka DOS) และเรียกใช้ cloc.exe จากบรรทัดคำสั่งที่นั่น หรือลองใช้ ClocViewer ซึ่งเป็นตัวห่อหุ้ม GUI รอบ cloc ที่ https://github.com/Roemer/ClocViewer
ดูเพิ่มเติมhttps://github.com/jmensch1/codeflowerสำหรับการแสดงผลกราฟิกของผลลัพธ์ cloc
พรอมต์> cloc --help การใช้งาน: cloc [ตัวเลือก]| <ชุด 1> <ชุด 2> | <ไฟล์รายงาน> นับหรือคำนวณความแตกต่างของบรรทัดฟิสิคัลของซอร์สโค้ดใน ไฟล์ที่กำหนด (อาจเป็นไฟล์เก็บถาวร เช่น tarballs ที่บีบอัดหรือไฟล์ zip หรือคอมไพล์คอมมิตแฮชหรือชื่อสาขา) และ/หรือเรียกซ้ำด้านล่าง ไดเร็กทอรีที่กำหนด ตัวเลือกการป้อนข้อมูล --extract-with= ตัวเลือกนี้จำเป็นเฉพาะในกรณีที่ cloc ไม่สามารถทำได้ เพื่อหาวิธีแยกเนื้อหาของ ไฟล์อินพุตด้วยตัวเอง ใช้ เพื่อแตกไฟล์เก็บถาวรแบบไบนารี (เช่น: .tar.gz, .zip, .Z) ใช้ตัวอักษร '>FILE<' เป็น สแตนด์อินสำหรับไฟล์จริงที่จะเป็น สกัดแล้ว เช่น การนับบรรทัดโค้ด ในไฟล์อินพุต gcc-4.2.tar.gz perl-5.8.8.tar.gz ในการใช้งานยูนิกซ์ --extract-with='gzip -dc >ไฟล์< | ทาร์ xf -' หรือถ้าคุณมี GNU tar --extract-with='tar zxf >ไฟล์<' และในการใช้งาน Windows เช่น: --extract-with=""c:Program FilesWinZipWinZip32.exe" -e -o >FILE< ." (หากติดตั้ง WinZip ไว้ที่นั่น) --list-file= นำรายชื่อไฟล์และ/หรือชื่อไดเร็กทอรีไป ประมวลผลจาก ซึ่งมีไฟล์/ไดเร็กทอรีเดียว ชื่อต่อบรรทัด นับเฉพาะการแข่งขันที่ตรงกันเท่านั้น ชื่อพาธสัมพัทธ์จะได้รับการแก้ไขโดยเริ่มจาก ไดเร็กทอรีที่ cloc ถูกเรียกใช้ ตั้งค่า <ไฟล์> ถึง - เพื่ออ่านชื่อไฟล์จากไปป์ STDIN ดูเพิ่มเติม --exclude-list-file --diff-list-file= ใช้คู่ของชื่อไฟล์ที่จะแตกต่าง ซึ่งมีรูปแบบตรงกับเอาต์พุตของ --diff การจัดตำแหน่ง (เรียกใช้ด้วยตัวเลือกนั้นเพื่อ ดูตัวอย่าง) ตัวระบุภาษาที่ ส่วนท้ายของแต่ละบรรทัดจะถูกละเว้น สิ่งนี้ทำให้ --diff โหมดและข้ามตรรกะการจัดตำแหน่งคู่ไฟล์ --vcs= เรียกระบบไปที่ เพื่อรับรายการ ไฟล์ที่จะทำงาน หาก คือ 'git' ก็จะเป็นเช่นนั้น เรียกใช้ 'git ls-files' เพื่อรับรายการไฟล์และ 'git submodule status' เพื่อรับรายการโมดูลย่อย ซึ่งเนื้อหาจะถูกละเว้น ดูเพิ่มเติม --git ซึ่งยอมรับคอมไพล์แฮชและชื่อสาขา หาก เป็น 'svn' จะเรียกใช้ 'svn list -R' ประโยชน์หลักคือ cloc จะข้ามไป ไฟล์ที่ถูกแยกออกอย่างชัดเจนโดยเครื่องมือการกำหนดเวอร์ชัน ที่เป็นปัญหา เช่น ผู้ที่อยู่ใน .gitignore หรือมี svn: ละเว้นทรัพย์สิน หรือ อาจเป็นคำสั่งระบบใดก็ได้ ที่สร้างรายการไฟล์ หมายเหตุ: cloc ต้องอยู่ในไดเร็กทอรีที่สามารถอ่านได้ ไฟล์ตามที่ ส่งคืน นาฬิกาจะ ไม่ดาวน์โหลดไฟล์จากที่เก็บข้อมูลระยะไกล 'svn list -R' อาจหมายถึงพื้นที่เก็บข้อมูลระยะไกล เพื่อรับชื่อไฟล์ (และอาจต้องใช้ การรับรองความถูกต้องไปยังพื้นที่เก็บข้อมูลระยะไกล) แต่ ไฟล์เหล่านั้นจะต้องอยู่ในเครื่อง การตั้งค่า เป็น 'อัตโนมัติ' เลือกระหว่าง 'git' และ 'svn' (หรือไม่มีเลย) ขึ้นอยู่กับการมีอยู่ ของไดเร็กทอรีย่อย .git หรือ .svn ใต้ไดเร็กทอรี โดยที่ cloc ถูกเรียกใช้ --unicode ตรวจสอบไฟล์ไบนารี่เพื่อดูว่ามี Unicode หรือไม่ ข้อความ ASCII ที่ขยาย ส่งผลให้ประสิทธิภาพในการ ลดลงอย่างเห็นได้ชัด ตัวเลือกการประมวลผล --autoconf นับไฟล์ .in (ตามที่ประมวลผลโดย GNU autoconf) ของ ภาษาที่ได้รับการยอมรับ ดูเพิ่มเติม --no-autogen --by-file รายงานผลลัพธ์สำหรับทุกไฟล์ต้นฉบับที่พบ --by-file-by-lang รายงานผลลัพธ์สำหรับทุกไฟล์ต้นฉบับที่พบ นอกเหนือจากการรายงานตามภาษาแล้ว --config อ่านบรรทัดคำสั่งสลับจาก แทน ตำแหน่งเริ่มต้นของ /home/al/.config/cloc/options.txt ไฟล์ควรมีสวิตช์ตัวเดียวพร้อมด้วย อาร์กิวเมนต์ (ถ้ามี) ต่อบรรทัด เส้นว่างและเส้น เริ่มต้นด้วย '#' จะถูกข้ามไป ตัวเลือกที่ให้ไว้ บรรทัดคำสั่งมีความสำคัญมากกว่ารายการที่อ่าน ไฟล์. --นับและผลต่าง ขั้นแรกให้ดำเนินการนับโค้ดโดยตรงของไฟล์ต้นฉบับ ของ และ แยกกัน จากนั้นจึงดำเนินการส่วนต่าง ของเหล่านี้ อินพุตอาจเป็นคู่ของไฟล์, ไดเร็กทอรี, หรือเอกสารสำคัญ หากได้รับ --out หรือ --report-file ไฟล์เอาต์พุตสามไฟล์จะถูกสร้างขึ้น หนึ่งไฟล์สำหรับแต่ละไฟล์ ของทั้งสองจำนวนและอีกจำนวนหนึ่งสำหรับส่วนต่าง ดูเพิ่มเติม --diff, --diff-การจัดตำแหน่ง --diff-หมดเวลา --ignore-case, --ignore-ช่องว่าง --diff คำนวณความแตกต่างในโค้ดและความคิดเห็นระหว่าง ไฟล์ต้นฉบับของ และ อินพุต อาจเป็นการผสมผสานระหว่างไฟล์ ไดเร็กทอรี ไฟล์เก็บถาวร หรือคอมไพล์คอมมิตแฮช ใช้ --diff-alignment เพื่อ สร้างรายการแสดงว่าไฟล์คู่ไหนอยู่ที่ไหน เปรียบเทียบ เมื่อเปรียบเทียบสาขา git มีเพียงไฟล์เท่านั้น ซึ่งมีการเปลี่ยนแปลงในการกระทำใด ๆ ที่ถูกเปรียบเทียบ ดูเพิ่มเติม --git, --count-and-diff, --diff-alignment, --diff-list-file, --diff-timeout, --ignore-case, --ละเว้นช่องว่าง --diff-timeout ละเว้นไฟล์ที่ใช้เวลามากกว่า วินาที เพื่อดำเนินการ ค่าเริ่มต้นคือ 10 วินาที การตั้งค่า ถึง 0 อนุญาตให้มีเวลาไม่จำกัด (ไฟล์ขนาดใหญ่ที่มีจำนวนมาก บรรทัดที่ซ้ำกันอาจทำให้เกิด Algorithm::Diff::sdiff() ใช้เวลาหลายชั่วโมง) ดูเพิ่มเติม --timeout --docstring-as-code cloc ถือว่า docstrings เป็นความคิดเห็น แต่นี่คือ ไม่ถูกต้องเสมอไปเนื่องจากเอกสารแสดงถึงความสม่ำเสมอ สตริงเมื่อปรากฏที่ด้านขวามือของ การมอบหมายหรือเป็นอาร์กิวเมนต์ของฟังก์ชัน สวิตช์นี้ บังคับให้สตริงเอกสารถูกนับเป็นโค้ด --follow-links [Unix เท่านั้น] ติดตามลิงก์สัญลักษณ์ไปยังไดเร็กทอรี (ลิงก์ sym ไปยังไฟล์จะถูกติดตามเสมอ) ดูเพิ่มเติม --stat --force-lang= [,<ต่อ>] ประมวลผลไฟล์ทั้งหมดที่มีนามสกุล พร้อมตัวนับสำหรับภาษา สำหรับ เช่น หากต้องการนับไฟล์ .f ทั้งหมดด้วยนามสกุล ตัวนับ Fortran 90 (ซึ่งคาดว่าไฟล์จะ ลงท้ายด้วย .f90) แทนที่จะเป็น Fortran 77 ที่เป็นค่าเริ่มต้น เคาน์เตอร์การใช้งาน --force-lang="Fortran 90,f" หากละเว้น ทุกไฟล์จะถูกนับ ด้วยตัวนับ ตัวเลือกนี้สามารถเป็นได้ ระบุหลายครั้ง (แต่นั่นเป็นเพียง มีประโยชน์เมื่อให้ ในแต่ละครั้ง) ดูเพิ่มเติมที่ --script-lang, --lang-no-ext --force-lang-def= โหลดตัวกรองการประมวลผลภาษาจาก , จากนั้นใช้ตัวกรองเหล่านี้แทนตัวกรองในตัว ตัวกรอง หมายเหตุ: ภาษาที่มีแผนที่เหมือนกัน นามสกุลไฟล์ (เช่น: MATLAB/Mathematica/วัตถุประสงค์-C/คางทูม/ปรอท; ปาสคาล/PHP; เสียงกระเพื่อม/OpenCL; ลิพท์/จูเลีย; ภาษาเพิร์ล/คำนำ) จะถูกละเว้นเนื่องจากสิ่งเหล่านี้จำเป็นต้องมีเพิ่มเติม การประมวลผลที่ไม่ได้แสดงออกมาในภาษา ไฟล์คำจำกัดความ ใช้ --read-lang-def เพื่อกำหนด ตัวกรองภาษาใหม่โดยไม่ต้องเปลี่ยนในตัว ตัวกรอง (ดูเพิ่มเติม --write-lang-def, --write-lang-def-incl-dup) --git บังคับให้อินพุตถูกตีความว่าเป็นเป้าหมายคอมไพล์ (คอมมิตแฮช ชื่อสาขา ฯลฯ) หากสิ่งเหล่านี้ ไม่ได้ถูกระบุเป็นไฟล์หรือไดเร็กทอรีก่อน ชื่อ ตัวเลือกนี้จะแทนที่ตรรกะ --vcs=git ถ้าสิ่งนี้ได้รับ; กล่าวอีกนัยหนึ่ง --git ได้รับมัน รายการไฟล์ที่จะทำงานโดยตรงจากการใช้ git ชื่อแฮชหรือสาขาแทนที่จะเป็นจาก 'git ls-ไฟล์' ตัวเลือกนี้สามารถใช้ได้กับ --diff เพื่อดำเนินการนับบรรทัดแตกต่างระหว่างคอมไพล์ คอมมิตหรือระหว่างคอมไพล์คอมมิตกับไฟล์ ไดเร็กทอรีหรือไฟล์เก็บถาวร ใช้ -v/--verbose เพื่อดู ระบบ git สั่งการปัญหา cloc --git-diff-rel เช่นเดียวกับ --git --diff หรือเพียงแค่ --diff ถ้าอินพุต ได้รับการยอมรับว่าเป็นเป้าหมายคอมไพล์ เฉพาะไฟล์ที่ มีการเปลี่ยนแปลงในการกระทำใด ๆ ที่ถูกเปรียบเทียบ --git-diff-all Git diff กลยุทธ์ #2: เปรียบเทียบไฟล์ทั้งหมดใน พื้นที่เก็บข้อมูลระหว่างทั้งสองกระทำ --ignore-whitespace ละเว้นช่องว่างแนวนอนเมื่อเปรียบเทียบไฟล์ ด้วย --diff ดูเพิ่มเติมที่ --ignore-case --ignore-case ละเว้นการเปลี่ยนแปลงในกรณีภายในเนื้อหาไฟล์; พิจารณาตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กที่เทียบเท่ากัน เมื่อเปรียบเทียบไฟล์กับ --diff ดูเพิ่มเติม --ละเว้นช่องว่าง --ignore-case-ext ละเว้นกรณีของนามสกุลไฟล์ นี้จะ ทำให้เกิดปัญหาในการนับบางภาษา (โดยเฉพาะ .c และ .C เกี่ยวข้องกับ C และ ค++; สวิตช์นี้จะนับไฟล์ .C เป็น C แทน กว่า C++ บนระบบปฏิบัติการ *nix) ชื่อไฟล์ การพิจารณาขนาดตัวพิมพ์จะเป็นจริงเสมอบน Windows --lang-no-ext= นับไฟล์ที่ไม่มีนามสกุลโดยใช้ เคาน์เตอร์. ตัวเลือกนี้จะแทนที่ตรรกะภายใน สำหรับไฟล์ที่ไม่มีนามสกุล (โดยที่ไฟล์ดังกล่าว ถูกตรวจสอบกับภาษาสคริปต์ที่รู้จัก โดยตรวจสอบบรรทัดแรกสำหรับ #!) ดูเพิ่มเติม --force-lang, --script-lang --max-file-size= ข้ามไฟล์ที่มีขนาดใหญ่กว่า เมกะไบต์เมื่อ ข้ามไดเรกทอรี โดยค่าเริ่มต้น =100 ความต้องการหน่วยความจำของ cloc คือประมาณยี่สิบเท่า ใหญ่กว่าไฟล์ที่ใหญ่ที่สุดดังนั้นทำงานด้วย ไฟล์ที่มีขนาดใหญ่กว่า 100 MB บนคอมพิวเตอร์ที่มีขนาดน้อยกว่า หน่วยความจำเกิน 2 GB จะทำให้เกิดปัญหา หมายเหตุ: การตรวจสอบนี้ใช้ไม่ได้กับไฟล์ ส่งผ่านอย่างชัดเจนเป็นอาร์กิวเมนต์บรรทัดคำสั่ง --no-autogen[=list] ละเว้นไฟล์ที่สร้างโดยระบบการผลิตโค้ด เช่น GNU autoconf หากต้องการดูรายการไฟล์เหล่านี้ (จากนั้นออก) รันด้วยรายการ --no-autogen ดูเพิ่มเติม --autoconf --Original-dir [มีผลเฉพาะเมื่อใช้ร่วมกับ --strip-comments] เขียนไฟล์ที่ถูกปล้น ไปยังไดเร็กทอรีเดียวกันกับไฟล์ต้นฉบับ --read-binary-files ประมวลผลไฟล์ไบนารีนอกเหนือจากไฟล์ข้อความ นี่เป็นความคิดที่ไม่ดีและควรเป็นเช่นนั้นเท่านั้น พยายามด้วยไฟล์ข้อความที่ฝังอยู่ ข้อมูลไบนารี --read-lang-def= โหลดตัวกรองการประมวลผลภาษาใหม่จาก และรวมเข้ากับสิ่งที่รู้จักอยู่แล้ว ถ้า กำหนดภาษา cloc รู้อยู่แล้ว เกี่ยวกับ คำจำกัดความของ cloc จะมีความสำคัญเหนือกว่า ใช้ --force-lang-def เพื่อโอเวอร์ไรด์ cloc's คำจำกัดความ (ดูเพิ่มเติม --write-lang-def, --write-lang-def-incl-dup) --script-lang= , ประมวลผลไฟล์ทั้งหมดที่เรียกใช้เป็น #! ภาษาสคริปต์พร้อมตัวนับภาษา <ภาษา>. เช่น ไฟล์ที่ขึ้นต้นด้วย #!/usr/local/bin/perl5.8.8 จะถูกนับด้วยตัวนับ Perl โดยใช้ --script-lang=Perl,perl5.8.8 ชื่อภาษาไม่คำนึงถึงขนาดตัวพิมพ์ แต่ ชื่อของภาษาสคริปต์ที่สามารถเรียกใช้งานได้, ต้องมีกรณีที่ถูกต้อง ตัวเลือกนี้สามารถเป็นได้ ระบุไว้หลายครั้ง ดูเพิ่มเติม --force-lang, --lang-no-ต่อ --sdir=ใช้ เป็นไดเร็กทอรีเริ่มต้นแทน ให้ File::Temp เลือกตำแหน่ง ไฟล์ เขียนถึงสถานที่นี้จะไม่ถูกลบออกที่ จุดสิ้นสุดของการรัน (เช่นเดียวกับ File::Temp) --skip-uniqueness ข้ามการตรวจสอบเอกลักษณ์ของไฟล์ นี้ก็จะให้ การเพิ่มประสิทธิภาพโดยไม่ต้องนับ ไฟล์ที่มีเนื้อหาเหมือนกันหลายครั้ง (หากมีการซ้ำซ้อนดังกล่าว) --stat ระบบไฟล์บางระบบ (AFS, CD-ROM, FAT, HPFS, SMB) ไม่มีไดเรกทอรี 'nlink' นับที่ตรงกัน จำนวนไดเรกทอรีย่อย เพราะเหตุนี้ cloc อาจนับน้อยหรือข้ามทั้งหมด เนื้อหาของระบบไฟล์ดังกล่าว สวิตช์นี้บังคับ ไฟล์::ค้นหาไดเร็กทอรีสถิติเพื่อรับไฟล์ การนับที่ถูกต้อง ความเร็วในการค้นหาไฟล์จะลดลง ดูเพิ่มเติม --follow-links --stdin-name= กำหนดชื่อไฟล์เพื่อใช้กำหนดภาษา สำหรับอินพุตมาตรฐาน (ใช้ - เป็นชื่ออินพุตของ รับซอร์สโค้ดผ่าน STDIN) --strip-comments= สำหรับแต่ละไฟล์ที่ประมวลผล ให้เขียนไปยังไฟล์ปัจจุบัน ไดเร็กทอรีเวอร์ชันของไฟล์ที่ว่างเปล่า และบรรทัดแสดงความคิดเห็นถูกลบออก (ความคิดเห็นในบรรทัด ยังคงอยู่) ชื่อของไฟล์ที่ถูกแยกแต่ละไฟล์คือ ชื่อไฟล์ต้นฉบับที่มี . ต่อท้าย มันถูกเขียนไปยังไดเร็กทอรีปัจจุบันเว้นแต่ --Original-dir เปิดอยู่ --strip-str-comments แทนที่เครื่องหมายความคิดเห็นที่ฝังอยู่ในสตริงด้วย 'xx' สิ่งนี้พยายามแก้ไขข้อจำกัด ใน Regexp::Common::Comment โดยที่เครื่องหมายความคิดเห็น ที่ฝังอยู่ในสตริงจะถูกมองว่าเป็นความคิดเห็นจริง เครื่องหมายและไม่ใช่สตริง มักส่งผลให้ 'ขีดจำกัดการเรียกซ้ำนิพจน์ย่อยปกติที่ซับซ้อน' คำเตือนและการนับที่ไม่ถูกต้อง มีอยู่สองคน ข้อเสียในการใช้สวิตช์นี้: 1/จำนวนรหัส ประสิทธิภาพลดลง และ 2/โค้ดที่สร้างด้วย --strip-comments จะมีสตริงที่แตกต่างกัน ที่เคยพบความคิดเห็นที่ฝังอยู่ --sum-reports อาร์กิวเมนต์อินพุตเป็นไฟล์รายงานก่อนหน้านี้ สร้างด้วยตัวเลือก --report-file ธรรมดา (เช่น ไม่ใช่ JSON, YAML, XML หรือ SQL) สร้างชุดผลลัพธ์สะสมที่มี ผลรวมข้อมูลจากไฟล์รายงานแต่ละไฟล์ --timeout ละเว้นไฟล์ที่ใช้เวลามากกว่า วินาที เพื่อประมวลผลในขั้นตอนการกรองของภาษา จำนวนวินาทีสูงสุดที่เป็นค่าเริ่มต้นที่ใช้ใน a filter stage คือจำนวนบรรทัดในไฟล์ หารด้วยหนึ่งพัน การตั้งค่า เป็น 0 อนุญาต ไม่จำกัดเวลา ดูเพิ่มเติมที่ --diff-timeout --processes=NUM [มีเฉพาะบนระบบที่มีเวอร์ชันล่าสุดเท่านั้น ของโมดูล Parallel::ForkManager ไม่ ใช้งานได้บน Windows] ตั้งค่าจำนวนสูงสุด แกนที่ cloc ใช้ ค่าเริ่มต้นคือ 0 ปิดใช้งานการประมวลผลหลายตัว --unix แทนที่การตรวจจับอัตโนมัติของระบบปฏิบัติการ ลอจิกและรันในโหมด UNIX ดูเพิ่มเติม --windows, --show-os. --use-sloccount หากติดตั้ง SLOCCount ให้ใช้การคอมไพล์ ไฟล์ปฏิบัติการ c_count, java_count, pascal_count, php_count และ xml_count แทน cloc's เคาน์เตอร์ ตัวนับที่คอมไพล์ของ SLOCCount คือ เร็วกว่าของ cloc อย่างมากและอาจให้ การปรับปรุงประสิทธิภาพเมื่อนับโครงการ ด้วยไฟล์ขนาดใหญ่ อย่างไรก็ตามสิ่งเหล่านี้มีเฉพาะกลุ่ม คุณสมบัติจะไม่สามารถใช้ได้: --diff, --count-and-diff, --strip-comments, --unicode --windows แทนที่การตรวจจับอัตโนมัติของระบบปฏิบัติการ ตรรกะและทำงานในโหมด Microsoft Windows ดูเพิ่มเติมที่ --unix, --show-os ตัวเลือกตัวกรอง --include-content= นับเฉพาะไฟล์ที่มีข้อความที่ตรงกับ ได้รับการแสดงออกปกติ --exclude-content= ยกเว้นไฟล์ที่มีข้อความที่ตรงกับที่กำหนด การแสดงออกปกติ --exclude-dir= [,D2,] ยกเว้นไดเร็กทอรีที่คั่นด้วยเครื่องหมายจุลภาคที่กำหนด D1, D2, D3 และอื่นๆ จากการสแกน สำหรับ ตัวอย่าง --exclude-dir=.cache การทดสอบจะข้ามไป ไฟล์และไดเร็กทอรีย่อยทั้งหมดที่มี /.cache/ หรือ /test/ เป็นไดเร็กทอรีหลัก ไดเรกทอรีชื่อ .bzr, .cvs, .hg, .git, .svn, และ .snapshot จะถูกแยกออกเสมอ ตัวเลือกนี้ใช้ได้กับแต่ละไดเร็กทอรีเท่านั้น ชื่อดังนั้นไม่รวมตัวแยกเส้นทางไฟล์ด้วย อนุญาต. ใช้ --fullpath และ --not-match-d= เพื่อจัดหา regex ที่ตรงกับหลายไดเรกทอรีย่อย --แยก-ext= [, [...]] อย่านับไฟล์ที่มีชื่อไฟล์ที่กำหนด ส่วนขยาย --แยก-lang= [,L2[...]] ไม่รวมภาษาที่คั่นด้วยเครื่องหมายจุลภาคที่กำหนด L1, L2, L3 และอื่นๆ จากการนับ --exclude-list-file= ละเว้นไฟล์และ/หรือไดเร็กทอรีที่มีชื่อ ปรากฏใน <ไฟล์> ควรมีไฟล์เดียว ชื่อต่อบรรทัด เฉพาะการจับคู่ที่ตรงทั้งหมดเท่านั้นที่จะถูกละเว้น ชื่อพาธสัมพัทธ์จะได้รับการแก้ไขโดยเริ่มจาก ไดเร็กทอรีที่ cloc ถูกเรียกใช้ ดูเพิ่มเติม --list-file --fullpath แก้ไขพฤติกรรมของ --match-f, --not-match-f, และ --not-match-d เพื่อรวมเส้นทางของไฟล์ ใน regex ไม่ใช่แค่ชื่อพื้นฐานของไฟล์ (ซึ่งไม่ได้ขยายแต่ละไฟล์เพื่อรวมไฟล์ เส้นทางสัมบูรณ์ แต่กลับใช้มากเท่ากับ เส้นทางที่ส่งผ่านไปยัง cloc) หมายเหตุ: --match-d จะดูเต็มเสมอ path จึงไม่ได้รับผลกระทบจาก --fullpath --include-ext= [,ext2[...]] นับเฉพาะภาษาที่มีเครื่องหมายจุลภาคที่กำหนด นามสกุลไฟล์ที่แยกจากกัน ใช้ --show-ext เพื่อ ดูส่วนขยายที่ได้รับการยอมรับ --include-lang= [,L2[...]] นับเฉพาะภาษาที่คั่นด้วยเครื่องหมายจุลภาคที่กำหนด L1, L2, L3 และอื่นๆ ใช้ --show-lang ในการดู รายการภาษาที่รู้จัก --match-d= นับเฉพาะไฟล์ในไดเร็กทอรีที่ตรงกับ Perl นิพจน์ทั่วไป ตัวอย่างเช่น --match-d='/(src|รวม)/' นับเฉพาะไฟล์ในไดเร็กทอรีที่มี /src/ หรือ /include/ ไม่เหมือน --not-match-d, --match-f และ --not-match-f, --match-d เสมอ เปรียบเทียบเส้นทางที่มีคุณสมบัติครบถ้วนกับ นิพจน์ทั่วไป --not-match-d= นับไฟล์ทั้งหมด ยกเว้นไฟล์ที่อยู่ในไดเร็กทอรี ตรงกับ Perl regex เหลือแต่ส่วนหลัง. ชื่อไดเร็กทอรีจะถูกเปรียบเทียบ เช่น เมื่อใด นับเป็น /usr/local/lib มีเพียง 'lib' เท่านั้น เมื่อเทียบกับ regex เพิ่ม --fullpath เพื่อเปรียบเทียบไดเรกทอรีหลักด้วย นิพจน์ทั่วไป อย่ารวมตัวแยกเส้นทางไฟล์ไว้ที่ จุดเริ่มต้นหรือจุดสิ้นสุดของ regex --match-f= นับเฉพาะไฟล์ที่มีชื่อฐานตรงกับ Perl นิพจน์ทั่วไป ตัวอย่างเช่น --match-f='^[Ww]idget' นับเฉพาะไฟล์ที่ขึ้นต้นด้วยวิดเจ็ตหรือวิดเจ็ต เพิ่ม --fullpath เพื่อรวมไดเรกทอรีหลัก ใน regex แทนที่จะเป็นเพียงชื่อฐาน --not-match-f= นับไฟล์ทั้งหมด ยกเว้นไฟล์ที่มีชื่อฐาน ตรงกับ Perl regex เพิ่ม --fullpath เพื่อรวม ไดเรกทอรีหลักใน regex แทนที่จะเป็นเพียง ชื่อฐาน --skip-archive= ละเว้นไฟล์ที่ลงท้ายด้วย Perl ที่กำหนดเป็นประจำ การแสดงออก. เช่น ถ้าให้ --skip-archive='(zip|tar(.(gz|Z|bz2|xz|7z))?)' รหัสจะข้ามไฟล์ที่ลงท้ายด้วย .zip .tar, .tar.gz, .tar.Z, .tar.bz2, .tar.xz และ .tar.7z. -ซ่อนตัวบน Windows ไม่สนใจไฟล์ที่ซ่อนอยู่ ตัวเลือกการดีบัก -หมวดหมู่ = บันทึกขนาดไฟล์ในไบต์ภาษาที่ระบุ และชื่อของไฟล์ที่จัดหมวดหมู่เป็น -counted = บันทึกชื่อของไฟล์ต้นฉบับที่ประมวลผลเป็น -การจัดตำแหน่ง-diff = เขียนถึง รายการไฟล์และคู่ไฟล์ แสดงไฟล์ที่ถูกเพิ่มลบและ/หรือ เปรียบเทียบระหว่างการวิ่งกับ - -ด่าง สวิตช์นี้ บังคับให้โหมด -DIFF เปิดอยู่ -explain = พิมพ์ตัวกรองที่ใช้เพื่อลบความคิดเห็นสำหรับ ภาษา และออก ในบางกรณี ตัวกรองอ้างถึงรูทีนย่อย Perl มากกว่า การแสดงออกปกติ การตรวจสอบของ ซอร์สโค้ดอาจจำเป็นสำหรับคำอธิบายเพิ่มเติม -Help พิมพ์ข้อมูลการใช้งานนี้และออก -found = บันทึกชื่อของทุกไฟล์ที่พบใน -ignored = บันทึกชื่อของไฟล์ที่ถูกละเว้นและเหตุผลที่พวกเขา ถูกเพิกเฉยต่อ -print-filter-stage การพิมพ์ซอร์สโค้ดประมวลผลก่อนและหลัง ใช้ตัวกรองแต่ละตัว -Show-Ext [= ] พิมพ์ข้อมูลเกี่ยวกับทั้งหมดที่รู้จัก (หรือเพียงแค่ ให้) ส่วนขยายไฟล์และการออก -Show-Lang [= ] พิมพ์ข้อมูลเกี่ยวกับทั้งหมดที่รู้จัก (หรือเพียงแค่ ให้) ภาษาและทางออก -Show-OS พิมพ์ค่าของโหมดระบบปฏิบัติการ และออก ดูเพิ่มเติม -unix, -windows -v [= ] สวิตช์ verbose (ค่าตัวเลขที่เป็นตัวเลือก) -verbose [= ] รูปแบบยาวของ -v -เวอร์ชันพิมพ์เวอร์ชันของโปรแกรมนี้และออก -write-lang-def = เขียนถึง ตัวกรองการประมวลผลภาษา จากนั้นออก มีประโยชน์เป็นขั้นตอนแรกในการสร้าง คำจำกัดความภาษาที่กำหนดเอง หมายเหตุ: ภาษาที่ แผนที่ไปยังส่วนขยายไฟล์เดียวกันจะถูกแยกออก (ดูเพิ่มเติม-FORCE-LANG-DEF,-อ่าน-Lang-def) -write-lang-def-incl-dup = เช่นเดียวกับ-Write-Lang-def แต่รวมถึงซ้ำกัน ส่วนขยาย สิ่งนี้สร้างภาษาที่มีปัญหา ไฟล์นิยามเนื่องจาก CLOC จะปฏิเสธที่จะใช้ มันจนกว่าจะมีการลบซ้ำ ตัวเลือกเอาต์พุต --3 พิมพ์เอาต์พุตภาษารุ่นที่สาม (ตัวเลือกนี้อาจทำให้รายงานการรวมล้มเหลว หากมีการจัดทำรายงานบางอย่างด้วยตัวเลือกนี้ ในขณะที่คนอื่น ๆ ถูกผลิตโดยไม่มีมัน) -โดยเปอร์เซ็นต์ x แทนที่จะแสดงความคิดเห็นและจำนวนบรรทัดที่ว่างเปล่าแสดง ค่าเหล่านี้เป็นเปอร์เซ็นต์ตามค่า ของ X ในตัวส่วน: x = 'c' -> # บรรทัดของรหัส x = 'cm' -> # บรรทัดของรหัส + ความคิดเห็น x = 'cb' -> # บรรทัดของรหัส + ช่องว่าง x = 'cmb' -> # บรรทัดของรหัส + ความคิดเห็น + ช่องว่าง ตัวอย่างเช่นหากใช้วิธี 'C' และรหัสของคุณ มีความคิดเห็นเป็นสองเท่าเป็นเส้น ของรหัสค่าในคอลัมน์ความคิดเห็นจะ เป็น 200% คอลัมน์รหัสยังคงนับบรรทัด -CSV เขียนผลลัพธ์เป็นค่าที่คั่นด้วยเครื่องหมายจุลภาค -csv-delimiter = ใช้อักขระ เป็นตัวคั่นสำหรับเครื่องหมายจุลภาค แยกไฟล์แทน,. Switch Forces -CSV ที่จะเปิด -ไฟล์เข้ารหัส = เขียนไฟล์เอาต์พุตโดยใช้ การเข้ารหัสแทน ASCII เริ่มต้น ( = 'UTF-7') ตัวอย่าง: 'UTF-16' 'EUC-KR', 'ISO-8859-16' การเข้ารหัสที่รู้จักสามารถ พิมพ์ด้วย perl -mencode -e 'print join (" n", encode-> encodings (": all")), " n" -อัตราค่าเสียหายไม่แสดงอัตราการประมวลผลบรรทัดและไฟล์ในไฟล์ ส่วนหัวเอาท์พุท สิ่งนี้ทำให้การกำหนดผลลัพธ์ -Json เขียนผลลัพธ์เป็นสัญลักษณ์วัตถุ JavaScript (JSON) รูปแบบเอาต์พุต -MD เขียนผลลัพธ์เป็นข้อความที่จัดรูปแบบ Markdown -OUT = คำพ้องความหมายสำหรับ--Report-File = -progress-rate = แสดงการอัปเดตความคืบหน้าหลังจากไฟล์ ทุกไฟล์เป็น ประมวลผล (ค่าเริ่มต้น = 100) ตั้งค่า เป็น 0 เป็น ระงับเอาต์พุตความคืบหน้า (มีประโยชน์เมื่อเปลี่ยนเส้นทาง เอาต์พุตไปยัง stdout) -Quiet ระงับข้อความข้อมูลทั้งหมดยกเว้นสำหรับ รายงานขั้นสุดท้าย --report-file = เขียนผลลัพธ์ไปที่ แทน stdout --sql = ผลการเขียนเป็น SQL สร้างและแทรกคำสั่ง ซึ่งสามารถอ่านได้โดยโปรแกรมฐานข้อมูลเช่น sqlite ถ้า คือ -เอาต์พุตจะถูกส่งไปยัง stdout -SQL-append SQL แทรกคำสั่งคำสั่งไปยังไฟล์ที่ระบุ โดย - -SQL และอย่าสร้างการสร้างตาราง งบ ใช้ได้เฉพาะกับตัวเลือก -SQL --sql-project = ใช้ เป็นตัวระบุโครงการสำหรับ การรันปัจจุบัน ใช้ได้เฉพาะกับตัวเลือก -SQL --sql-style =