คำถามติดแท็ก wc

ยูทิลิตี้ "wc` นับขึ้นบรรทัดใหม่คำและไบต์สำหรับไฟล์หรืออินพุตมาตรฐาน

5
แสดงรายการไฟล์ที่เรียงตามจำนวนบรรทัดที่มี
ฉันจะแสดงรายการจำนวนบรรทัดในไฟล์/group/book/four/wordเรียงลำดับตามจำนวนบรรทัดที่มีได้อย่างไร ls -l คำสั่งรายการพวกเขาลง แต่ไม่ได้จัดเรียงพวกเขา
32 bash  shell  files  wc 

3
จำนวนไบต์ของ“ ls -l <สุ่มไฟล์>” เทียบกับ“ wc -c <สุ่มไฟล์>”
มีสถานการณ์ที่เป็นไปได้เมื่อใด ls -l file.txt แสดงจำนวนไบต์ไม่เท่ากัน wc -c file.txt ในสคริปต์หนึ่งฉันพบว่าการเปรียบเทียบค่าทั้งสองนั้น อะไรคือเหตุผลของสิ่งนั้น? เป็นไปได้ไหมที่จะมีจำนวนไบต์ต่างกันในไฟล์เดียวกัน
25 ls  wc  byte 

17
วิธีค้นหาบรรทัดที่มีอักขระน้อยที่สุด
ฉันกำลังเขียนเชลล์สคริปต์โดยใช้คำสั่ง UNIX ทั่วไป ฉันต้องดึงสายที่มีตัวอักษรน้อยที่สุด (รวมช่องว่าง) สามารถมีได้สูงสุดประมาณ 20 บรรทัด ฉันรู้ว่าฉันสามารถใช้head -$L | tail -1 | wc -mเพื่อค้นหาจำนวนตัวอักษรของบรรทัด L ปัญหาคือวิธีเดียวที่ฉันสามารถคิดได้โดยใช้สิ่งนั้นคือการเขียนคำสั่งที่ยุ่งเหยิงหากเปรียบเทียบกับค่าต่างๆ ข้อมูลตัวอย่าง: seven/7 4for 8 eight? five! จะกลับมา4forเนื่องจากบรรทัดนั้นมีอักขระน้อยที่สุด ในกรณีของฉันหากหลายบรรทัดมีความยาวสั้นที่สุดควรจะคืนค่าหนึ่งบรรทัด ไม่สำคัญว่าจะเลือกรายการใดตราบใดที่มีความยาวต่ำสุด แต่ฉันไม่เห็นอันตรายในการแสดงทั้งสองวิธีสำหรับผู้ใช้รายอื่นที่มีสถานการณ์อื่น


2
ทำไม wc จึงช้า
ทำไมยูทิลิตี wc จึงช้า? เมื่อฉันเรียกใช้บนไฟล์ขนาดใหญ่จะใช้เวลานานกว่า md5sum ประมาณ 20 เท่า: MyDesktop:/tmp$ dd if=/dev/zero bs=1024k count=1024 of=/tmp/bigfile 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 0.687094 s, 1.6 GB/s MyDesktop:/tmp$ time wc /tmp/bigfile 0 0 1073741824 /tmp/bigfile real 0m45.969s user 0m45.424s sys 0m0.424s MyDesktop:/tmp$ time md5sum /tmp/bigfile cd573cfaace07e7949bc0c46028904ff /tmp/bigfile real …
17 performance  wc 

3
เหตุใด“ wc -c” จึงพิมพ์ค่าอีกหนึ่งค่าด้วย echo
เมื่อวิ่ง echo abcd | wc -c มันกลับ5มา แต่คำabcdนี้มีความยาวเพียง 4 ตัวอักษร กำลังechoพิมพ์ตัวละครพิเศษหลังจากคำว่าabcd? และฉันสามารถป้องกันไม่ให้echoพิมพ์ได้หรือไม่

8
ฉันจะรับจำนวนตัวอักษรของคำในคอลัมน์ใดคอลัมน์หนึ่งได้อย่างไร
ฉันมีไฟล์ CSV เช่นนี้: abd,123,egypt,78 cde,456,england,45 ฉันจะรับจำนวนตัวอักษรของคำในคอลัมน์ที่ 3 ได้อย่างไร ฉันไม่สามารถหาวิธีwcทำสิ่งนี้ได้
12 shell  columns  csv  wc 

4
ฉันจะได้รับบรรทัดทั้งหมดด้วย `wc -l 'ได้อย่างไร
ฉันได้เพิ่มนามแฝง git เพื่อให้การนับจำนวนบรรทัดของไฟล์เฉพาะในประวัติของฉัน: [alias] lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc อย่างไรก็ตามwc -lมีการรายงานผลรวมหลายรายการเช่นถ้าฉันมีมากกว่า ~ 100k บรรทัดจะรายงานยอดรวมสำหรับพวกเขาจากนั้นก็จะดำเนินการต่อ นี่คือตัวอย่าง: &lt;100k บรรทัด (เอาต์พุตที่ต้องการ) $ git lines \*.xslt 46 packages/NUnit-2.5.10.11092/doc/files/Summary.xslt 232 packages/NUnit-2.5.10.11092/samples/csharp/_UpgradeReport_Files/UpgradeReport.xslt 278 total &gt; 100k บรรทัด (ต้องไปที่ท่อgrep "total") $ git lines \*.cs | grep "total" …
12 files  xargs  wc 


2
ทำไม wc -m และ wc -c ต่างกัน?
ในฐานะโปรแกรมเมอร์ C ฉันรู้สึกประหลาดใจที่เห็นว่าwc -c(ซึ่งนับจำนวนไบต์) และwc -m(ซึ่งนับจำนวนอักขระ) ผลลัพธ์ผลลัพธ์ที่แตกต่างกันมากสำหรับไฟล์ข้อความขนาดยาวของฉัน ฉันได้รับการบอกเสมอว่าsizeof(char)มี 1 ไบต์ qdii@nomada ~/Documents $ wc -c sentences.csv 102990983 sentences.csv qdii@nomada ~/Documents $ wc -m sentences.csv 89023123 sentences.csv คำอธิบายใด ๆ

2
ทำไม wc <<<“ $ string” แสดงความยาวหนึ่งไบต์นานกว่า printf“ $ string” | ห้องน้ำ?
โดยบังเอิญฉันพบว่าwcนับแตกต่างกันขึ้นอยู่กับว่ามันได้รับข้อมูลจากทุบตี: $ s='hello' $ wc -m &lt;&lt;&lt;"$s" 6 $ wc -c &lt;&lt;&lt;"$s" 6 $ printf '%s' "$s" | wc -m 5 $ printf '%s' "$s" | wc -c 5 นี่คือ - IMHO ทำให้สับสน - พฤติกรรมมีการบันทึกไว้ที่อื่นหรือไม่ สิ่งที่wcนับที่นี่ - นี่คือการขึ้นบรรทัดใหม่หรือไม่

8
นับจำนวนบรรทัดว่างที่ท้ายไฟล์
ฉันมีไฟล์ที่มีบรรทัดว่างที่ท้ายไฟล์ ฉันสามารถใช้grepเพื่อนับจำนวนบรรทัดว่างท้ายไฟล์ด้วยชื่อไฟล์ที่ถูกส่งเป็นตัวแปรในสคริปต์ได้หรือไม่

4
วิธีใช้ wc และ piping เพื่อค้นหาว่ามีไฟล์และไดเรคทอรีจำนวนเท่าใดในไดเรกทอรีหนึ่ง
ฉันจะใช้ตัวนับคำ ( wc) และการไพพ์เพื่อนับจำนวนไฟล์หรือไดเรกทอรีที่อยู่ใน/usr/binไดเรกทอรีได้อย่างไร

7
วิธีการแยกไฟล์ข้อความขนาดใหญ่อย่างมีประสิทธิภาพโดยไม่ต้องแยกหลายระเบียน
ฉันมีไฟล์ข้อความขนาดใหญ่ (~ 50Gb เมื่อ gz'ed) ไฟล์มี4*Nเส้นหรือNบันทึก นั่นคือทุกระเบียนประกอบด้วย 4 บรรทัด ฉันต้องการแบ่งไฟล์นี้เป็นไฟล์ขนาดเล็กลง 4 ไฟล์แต่ละไฟล์มีขนาดประมาณ 25% ของไฟล์อินพุต ฉันจะแบ่งไฟล์ที่ขอบเขตการบันทึกได้อย่างไร? วิธีการที่ไร้เดียงสาจะเป็นzcat file | wc -lที่จะได้รับการนับเส้นแบ่งว่าจำนวน 4 split -l &lt;number&gt; fileและการใช้งานแล้ว อย่างไรก็ตามสิ่งนี้จะข้ามไฟล์สองครั้งและการนับบรรทัดช้ามาก (36 นาที) มีวิธีที่ดีกว่า? นี่เข้ามาใกล้ แต่ไม่ใช่สิ่งที่ฉันกำลังมองหา คำตอบที่ยอมรับจะนับจำนวนบรรทัดด้วย แก้ไข: ไฟล์มีข้อมูลลำดับในรูปแบบ fastq สองระเบียนมีลักษณะเช่นนี้ (ไม่ระบุชื่อ): @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTTTATGTTTTTAATTAATTCTGTTTCCTCAGATTGATGATGAAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFFFFFFFFFAFFFFF#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&lt;AFFFFFFFFFFAFFFFFFFFFFFFFFFFFFF&lt;FFFFFFFFFAFFFAFFAFFAFFFFFFFFAFFFFFFAAFFF&lt;FAFAFFFFA @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCCCTCTGCTGGAACTGACACGCAGACATTCAGCGGCTCCGCCGCCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFF7FFFFFFAFFFFA#F7FFFFFFFFF7FFFFFAF&lt;FFFFFFFFFFFFFFAFFF.F.FFFFF.FAFFF.FFFFFFFFFFFFFF.)F.FFA))FFF7)F7F&lt;.FFFF.FFF7FF&lt;.FFA&lt;7FA.&lt;.7FF.FFFAFF @บรรทัดแรกของแต่ละระเบียนจะเริ่มต้นด้วย EDIT2: zcat file &gt; …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.