นี่เป็นวิธีที่ถูกต้องในการแสดงจำนวนบรรทัดของไฟล์ที่ระบุหรือไม่
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