Cat ใน Linux ย่อมาจาก concatenation (เพื่อรวมสิ่งต่าง ๆ เข้าด้วยกัน) และเป็นหนึ่งในคำสั่ง Linux ที่มีประโยชน์และหลากหลายที่สุด แม้ว่าจะไม่ได้น่ารักและน่ากอดเหมือนแมวจริงๆ แต่ Linux cat
คำสั่งสามารถใช้เพื่อรองรับการดำเนินการต่างๆ โดยใช้สตริง ไฟล์ และเอาต์พุต
คำสั่ง cat มีจุดประสงค์หลักสามประการที่เกี่ยวข้องกับไฟล์ข้อความ:
- สร้าง
- อ่าน/แสดงผล
- อัปเดต/แก้ไข
เราจะพูดถึงสิ่งเหล่านี้เพื่อแสดงคำสั่งและตัวเลือกที่เกี่ยวข้องกับการดำเนินการแต่ละอย่าง
เริ่มต้นใช้งาน
ในการเริ่มต้น มาสร้างไฟล์สองไฟล์ชื่อ foo.txt และ spam.txt
เริ่มต้นด้วยการสร้าง foo.txt ด้วยคำสั่ง cat > foo.txt
จากบรรทัดคำสั่ง Linux
คำเตือน:หากมีไฟล์ชื่อ foo.txt อยู่แล้ว cat
คำสั่งโดยใช้ตัวดำเนินการ> จะเขียนทับ
จากที่นี่ พรอมต์จะแสดงขึ้นบรรทัดใหม่เพื่อให้เราสามารถป้อนข้อความที่เราต้องการได้ สำหรับตัวอย่างนี้ เราจะใช้:
FILE 1
foo
bar
baz
เพื่อกลับไปที่บรรทัดคำสั่งและสร้างไฟล์ข้อความ เราใช้ CTRL + D.
ตอนนี้ มาสร้าง spam.txt ด้วย cat > spam.txt
และใส่สิ่งต่อไปนี้:
FILE 2
spam
ham
eggs
หากเราต้องการต่อท้ายหรือเพิ่มข้อความในไฟล์เหล่านี้ เราจะใช้ cat >> FILENAME
และป้อนข้อความที่เราต้องการใช้
โปรดทราบว่าโอเปอเรเตอร์>> ใช้สำหรับต่อท้ายแทนที่จะเป็นโอเปอเรเตอร์>
แทนที่จะต้องเปิดโปรแกรมแก้ไขข้อความ เราสามารถสร้างไฟล์ข้อความที่ง่ายและรวดเร็วจากบรรทัดคำสั่ง ซึ่งช่วยเราประหยัดเวลาและความพยายาม
ประเด็นสำคัญจากส่วนนี้คือเราใช้ cat > FILENAME
เพื่อสร้างหรือเขียนทับไฟล์ นอกจากนี้เรายังสามารถใช้ cat >> FILENAME
เพื่อต่อท้ายไฟล์ที่มีอยู่แล้ว หลังจากพิมพ์ข้อความแล้ว เราต้องการใช้ CTRL + D เพื่อออกจากตัวแก้ไข กลับไปที่บรรทัดคำสั่ง และสร้างไฟล์
การอ่านสายรุ้ง
ตอนนี้เราได้สร้างบางสิ่งแล้ว มาดูสิ่งที่เราทำกัน
สังเกตว่าเราไม่มีโอเปอเรเตอร์> หรือ>> ในคำสั่งต่อไปนี้ มีแต่ cat และชื่อไฟล์
คำสั่ง cat foo.txt
จะแสดงสิ่งต่อไปนี้:
FILE 1
foo
bar
baz
ดังนั้น cat foo.txt
จะให้เราอ่านไฟล์ แต่มาดูกันว่าเราจะทำอะไรได้อีก
สมมติว่าเราต้องการทราบจำนวนบรรทัดของไฟล์ที่เรากำลังดำเนินการอยู่ สำหรับสิ่งนี้ ตัวเลือก -n มีประโยชน์
ด้วยคำสั่ง cat -n foo.txt
เราจะเห็นว่าไฟล์ของเรายาวแค่ไหน:
1 FILE 1
2 foo
3 bar
4 baz
ด้วย -n เราสามารถทราบจำนวนบรรทัดของไฟล์ที่เรากำลังใช้งาน สิ่งนี้มีประโยชน์เมื่อเราวนซ้ำไฟล์ที่มีความยาวคงที่
กำลังเชื่อมต่อไฟล์
โอเค เราเห็นแล้วว่า cat สามารถสร้างและแสดงไฟล์ได้ แต่การต่อ (รวม) เข้าด้วยกันล่ะ?
สำหรับตัวอย่างนี้ เราจะใช้ไฟล์ foo.txt และ spam.txt ถ้าเราต้องการจะจินตนาการ เราสามารถดูเนื้อหาของทั้งสองไฟล์พร้อมกันได้ เราจะใช้คำสั่ง cat อีกครั้ง คราวนี้ใช้ cat foo.txt spam.txt
.
cat foo.txt spam.txt
ผลลัพธ์ดังต่อไปนี้:
FILE 1
foo
bar
baz
FILE 2
spam
ham
eggs
โปรดทราบว่าข้างต้นแสดงเฉพาะสองไฟล์เท่านั้น ณ จุดนี้ เรายังไม่ได้ต่อกันเป็นไฟล์ใหม่
ในการต่อไฟล์เป็นไฟล์ใหม่ เราต้องการใช้ cat foo.txt spam.txt > fooSpam.txt
ซึ่งให้ผลลัพธ์เป็นไฟล์ใหม่ fooSpam.txt
การใช้ cat fooSpam.txt
ส่งออกข้อมูลต่อไปนี้ไปยังเทอร์มินัล:
FILE 1
foo
bar
baz
FILE 2
spam
ham
eggs
คำสั่งนี้ยังมีประโยชน์เมื่อเราต้องการเชื่อมไฟล์มากกว่าสองไฟล์เป็นไฟล์ใหม่
ประเด็นสำคัญคือเราสามารถดูไฟล์หลายไฟล์ด้วย cat FILENAME1 FILENAME 2
.
นอกจากนี้ เราสามารถเชื่อมหลายไฟล์เป็นไฟล์เดียวด้วยคำสั่ง cat FILENAME1 FILENAME 2 > FILENAME3
.
กิจกรรมสนุกๆ อื่นๆ ที่ควรทำกับแมว
สมมติว่าเรากำลังทำงานกับไฟล์และได้รับข้อผิดพลาดด้วยเหตุผลบางประการก่อนสิ้นสุดไฟล์ และดูเหมือนว่าไฟล์อาจมีบรรทัดมากกว่าที่เราคาดไว้
เพื่อตรวจสอบไฟล์เพิ่มเติมอีกเล็กน้อยและอาจแก้ปัญหาของเราได้ เราสามารถใช้สวิตช์ -A ตัวเลือก -A จะแสดงให้เราเห็นว่าบรรทัดใดลงท้ายด้วย $ จะแสดงอักขระแท็บด้วย ^I และยังแสดงอักขระอื่นๆ ที่ไม่ได้พิมพ์ด้วย
หากเราดูตัวอย่างไฟล์ข้อความที่ไม่สามารถพิมพ์ได้ด้วย cat nonPrintExample.txt
เราอาจได้อะไรแบบนี้:
ซึ่งก็โอเคแต่อาจไม่สามารถบอกเล่าเรื่องราวทั้งหมดของตัวละครหรือสตริงที่อาจสร้างปัญหาให้เราได้
ในขณะที่ cat -A nonPrintExample.txt
อาจให้ผลลัพธ์ที่เป็นประโยชน์กับเรามากขึ้น:
^I^I$
$
^L$
$
^G^H^H^H^Y^I^N^O^P^@$
^@^@^[g^[f^[d^[g^[6^[5^[4^[6^[=$
$
$
^X$
ที่นี่ เราได้รับการแสดงที่ชัดเจนยิ่งขึ้นของสิ่งที่อาจเกิดขึ้นระหว่างแท็บ การป้อนบรรทัด การส่งคืน และอักขระอื่นๆ
ประเด็นสำคัญที่นี่คือ cat -A FILENAME สามารถบอกรายละเอียดเชิงลึกเกี่ยวกับไฟล์ที่เรากำลังดำเนินการได้
บทความนี้ควรให้ภาพรวมที่ดีของคำสั่ง cat สิ่งที่สามารถทำได้ และฟังก์ชันการทำงาน