Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

เชี่ยวชาญคำสั่ง 'cat' ใน Linux: ไวยากรณ์ ตัวเลือก และตัวอย่างปฏิบัติ

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