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

เชี่ยวชาญคำสั่ง cat ใน Linux: การต่อข้อความ แสดงไฟล์ และจัดการไฟล์ พร้อมตัวอย่าง Bash

cat ใน Linux ย่อมาจาก concatenation (การต่อข้อความ/ไฟล์เข้าด้วยกัน) เป็นหนึ่งในคำสั่งที่มีประโยชน์และหลากหลายที่สุด แม้จะไม่น่ารักเท่าแมวจริง แต่ cat รองรับการทำงานกับสตริง ไฟล์ และเอาต์พุตหลายรูปแบบ

คำสั่ง cat มี 3 หน้าที่หลักเกี่ยวกับไฟล์ข้อความ:

  • Create — สร้างไฟล์
  • Read/Display — อ่าน/แสดงเนื้อหา
  • Update/Modify — อัปเดต/แก้ไข (ผ่านการ Append)

เริ่มต้นใช้งาน

สร้างไฟล์ทดสอบ 2 ไฟล์: foo.txt และ spam.txt

สร้างไฟล์ด้วย cat > filename

cat > foo.txt

⚠ คำเตือน: หากมี foo.txt อยู่แล้ว > จะ ทับซ้อน (Overwrite) ไฟล์เดิม

หลังรันคำสั่ง จะเข้าสู่โหมดรับ Input — พิมพ์ข้อความที่ต้องการ:

FILE 1
foo
bar
baz

กด Ctrl + D เพื่อออกและสร้างไฟล์

สร้าง spam.txt แบบเดียวกัน:

cat > spam.txt

ใส่ข้อความ:

FILE 2
spam
ham
eggs

กด Ctrl + D

เพิ่มข้อความท้ายไฟล์ (Append) ด้วย >>

cat >> foo.txt

สำคัญ: >> ใช้สำหรับ Append (เพิ่มท้าย) ส่วน > ใช้สร้างใหม่/ทับซ้อน

สรุป: cat > file = สร้าง/ทับ, cat >> file = เพิ่มท้าย, Ctrl+D = จบการใส่ข้อมูล

อ่านและแสดงไฟล์ (Reading)

แสดงเนื้อหาไฟล์ — ไม่ใช้ > หรือ >>:

cat foo.txt

ผลลัพธ์:

FILE 1
foo
bar
baz

แสดงหมายเลขบรรทัดด้วย -n

cat -n foo.txt

ผลลัพธ์:

     1  FILE 1
     2  foo
     3  bar
     4  baz

ประโยชน์: รู้จำนวนบรรทัดได้เร็ว — เหมาะสำหรับการ Iterate ไฟล์ขนาดคงที่

ต่อไฟล์ (Concatenating Files)

แสดงหลายไฟล์พร้อมกัน:

cat foo.txt spam.txt

ผลลัพธ์ (แสดงต่อเนื่อง):

FILE 1
foo
bar
baz
FILE 2
spam
ham
eggs

หมายเหตุ: คำสั่งข้างต้น แสดงอย่างเดียว ยังไม่ได้รวมเป็นไฟล์ใหม่

รวมไฟล์จริงเป็นไฟล์ใหม่

cat foo.txt spam.txt > fooSpam.txt

ตรวจสอบ:

cat fooSpam.txt

ได้เนื้อหารวมเหมือนด้านบน — ใช้ได้กับไฟล์มากกว่า 2 ไฟล์เช่นกัน

คุณสมบัติเพิ่มเติมของ cat

แสดงอักขระ不可見 ด้วย -A

หากไฟล์มีปัญหา (บรรทัดมากกว่าคาด, Error แปลกๆ) ใช้ cat -A:

  • แสดงจุดสิ้นสุดบรรทัดด้วย $
  • แสดง Tab ด้วย ^I
  • แสดงอักขระ Non-printing อื่นๆ

ตัวอย่างเปรียบเทียบ:

cat nonPrintExample.txt
# ผลลัพธ์: อักขระแปลกๆ ไม่อ่านออก
cat -A nonPrintExample.txt
# ผลลัพธ์: ^I^I$ $ ^L$ $ ^G^H^H^H^Y^I^N^O^P^@$ ... (อ่านออกชัดเจนกว่า)

cat -A ช่วย Debug ไฟล์ที่มีอักขระซ่อน/พิเศษได้ดี

สรุป

  • cat > file — สร้าง/ทับไฟล์
  • cat >> file — เพิ่มข้อความท้ายไฟล์
  • cat file — แสดงเนื้อหา
  • cat -n file — แสดงพร้อมหมายเลขบรรทัด
  • cat file1 file2 — แสดงหลายไฟล์ติดกัน
  • cat file1 file2 > file3 — รวมไฟล์เป็นไฟล์ใหม่
  • cat -A file — แสดงอักขระซ่อน/พิเศษ

คำสั่ง cat ดูเรียบง่ายแต่ทรงพลัง — เรียนรู้ให้คล่อง จะช่วยให้ทำงาน CLI ได้เร็วขึ้นมาก!