นี่เป็นวิธีที่ถูกต้องในการแสดงจำนวนบรรทัดของไฟล์ที่ระบุหรือไม่
cat file | grep * -c
นี่เป็นวิธีที่ถูกต้องในการแสดงจำนวนบรรทัดของไฟล์ที่ระบุหรือไม่
cat file | grep * -c
คำตอบ:
คุณสามารถใช้คำสั่งนี้:
wc -l <file>
นี่จะคืนค่าจำนวนบรรทัดทั้งหมดในไฟล์ที่ให้
เชลล์ของคุณจะ "ขยาย" เครื่องหมายดอกจันในgrep * -c
ทุกสิ่งในไดเรกทอรีปัจจุบันซึ่งเป็นผลมาจาก:
grep foo bar baz -c
ซึ่งไม่ใช่สิ่งที่คุณต้องการ
ลองcat file | grep -c .
นับจำนวนแถวที่มีอักขระที่พิมพ์ได้อย่างน้อยหรือcat file | wc -l
นับจำนวนบรรทัด
อย่างไรก็ตามหากอินพุตเป็นไฟล์คุณอาจพิจารณาให้สิทธิ์การเข้าถึงไฟล์แทนการไพพ์ไฟล์บน stdin ไปยังคำสั่งที่ทำการนับ (ตัวอย่างเช่นwc -l file
หรือgrep . -c file
)
หากคุณไม่ต้องการwc
แสดงชื่อไฟล์เมื่อให้ชื่อไฟล์คุณสามารถแยกคำแรกของผลลัพธ์wc -l
ด้วยตัวกรองที่คุณโปรดปรานเช่นcut(1)
: wc -l foo | cut -d' ' -f 1
หรือawk(1)
: wc -l foo | awk '{print $1}'
หรืออย่างอื่นที่มีผลเหมือนกัน
หมายเลขบรรทัดที่ไม่ว่างทั้งหมด:
cat file | nl
หรือรวมทุกอย่าง:
cat file | nl -ba