คำสั่ง cat (concatenate) ใน Linux/Bash ใช้กันอย่างแพร่หลายสำหรับอ่านเนื้อหาของไฟล์ มันจะแสดงเนื้อหาของไฟล์ที่ระบุ นี่คือวิธีการใช้งาน
cat ต่อ (concatenates) ไฟล์เข้าสู่ standard output – โดยค่าเริ่มต้นคือคอนโซลสำหรับดูบนหน้าจอคอมพิวเตอร์ของคุณ ทำให้มันมีประโยชน์สำหรับดูเนื้อหาไฟล์อย่างรวดเร็ว
มันยังมีการใช้งานอื่นๆ อีก แต่ก่อนอื่น เรื่องไวยากรณ์:
ไวยากรณ์ cat
cat [OPTIONS] [FILE]
โปรดทราบว่า:
- หากไม่ระบุ FILE จะอ่านจาก standard input (stdin)
- สามารถระบุ FILE หลายไฟล์ได้ คั่นด้วยช่องว่าง
- OPTIONS ควรเป็นรายการตัวเลือกจากตารางด้านล่าง
- คำสั่งจะส่งออกข้อมูลผ่าน standard output (stdout)
ตัวเลือก (Options)
นี่คือตัวเลือกที่ใช้บ่อยสำหรับ cat ตามคู่มือผู้ใช้:
| ตัวเลือก | คำอธิบาย |
|---|---|
| -A, --show-all | เทียบเท่า -vET |
| -b, --number-nonblank | แสดงหมายเลขบรรทัดที่ไม่ว่าง ทับซ้อน -n |
| -e | เทียบเท่า -vE |
| -E, --show-ends | แสดง $ ที่ท้ายแต่ละบรรทัด |
| -n, --number | แสดงหมายเลขทุกบรรทัดเอาต์พุท |
| -s, --squeeze-blank | บีบบรรทัดว่างซ้ำๆ ให้เหลือบรรทัดเดียว |
| -t | เทียบเท่า -vT |
| -T, --show-tabs | แสดงแท็บ (TAB) เป็น ^I |
| -v, --show-nonprinting | ใช้ ^ และ M- notation ยกเว้น LFD และ TAB |
คู่มือผู้ใช้เต็มรูปแบบสามารถดูได้ตลอดเวลโดยรัน:
man cat
stdin และ stdout คืออะไร?
เรื่องนี้ต้องการคำอธิบายแยกต่างหาก แต่เนื่องจากคำสั่ง cat ง่ายมาก จึงเป็นการแนะนำ standard streams ที่ดี คลิกที่นี่สำหรับรายละเอียดเต็มรูปแบบ
อ่านไฟล์ไปยังคอนโซล (Bash) (stdout)
cat text.txt
ง่ายมาก – cat จะอ่านไฟล์และแสดงเนื้อหาบนคอนโซลให้คุณดู
เนื้อหาของไฟล์ถูกส่งออกผ่าน stdout ซึ่งโดยค่าเริ่มต้นส่งข้อมูลไปยังคอนโซล แต่สามารถส่งต่อ (redirect) เข้าโปรแกรมอื่นได้
อ่านเนื้อหาไฟล์เข้าโปรแกรม (ผ่าน stdin)
cat text.txt | less
ตามที่บทความ standard inputs ด้านบนระบุ ผลลัพธ์จาก cat สามารถส่งต่อไปยังอินพุตของคำสั่งอื่นได้
คำสั่งด้านบนส่งเนื้อหาของ text.txt เข้าไปในคำสั่ง less
การรวมไฟล์ (Merging Files)
ด้วยชื่อคำสั่งที่หมายถึงการต่อกัน เราจะไม่พลาดโอกาสที่จะแสดงวิธีใช้มันเพื่อรวม (concatenate) ไฟล์:
cat file1 file2 > mergedfile
cat สามารถอ่านจากหลายไฟล์ได้ การส่งทิศทางเอาต์พุทไปยังไฟล์เดียวจะทำให้ได้ไฟล์ที่มีเนื้อหาของไฟล์ที่อ่านทั้งหมดต่อกันตามลำดับ