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

เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

บทความนี้เป็นส่วนหนึ่งของชุด Linux Tricks and Tips ในบทความนี้เราจะครอบคลุมการใช้งานพื้นฐานของคำสั่ง cat (คำสั่งที่ใช้บ่อยที่สุดใน Linux) และ tac (คำสั่งย้อนกลับของ cat – พิมพ์ไฟล์ในลำดับย้อนกลับ) พร้อมตัวอย่างปฏิบัติจริง

อ่านเพิ่มเติม: 13 ตัวอย่างการใช้คำสั่ง 'cat' ที่มีประโยชน์ใน Linux

การใช้งานพื้นฐานของคำสั่ง Cat ใน Linux

Cat ย่อมาจาก Concatenate เป็นหนึ่งในคำสั่งที่ใช้มากที่สุดในระบบ *nix การใช้งานพื้นฐานที่สุดคืออ่านไฟล์และแสดงผลบน stdout หมายถึงแสดงเนื้อหาไฟล์บนเทอร์มินัลของคุณ

# cat file.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

การใช้งานอีกอย่างของคำสั่ง cat คืออ่านหรือรวมหลายไฟล์เข้าด้วยกันและส่ง Output ไปยังหน้าจอ ตามตัวอย่างด้านล่าง

# cat file1.txt file2.txt file3.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

คำสั่งนี้ยังสามารถใช้รวม (Join) หลายไฟล์เป็นไฟล์เดียวโดยใช้ Redirection Operator ของ Linux คือ “>”

# cat file1.txt file2.txt file3.txt > file-all.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

ด้วย Append Redirector คุณสามารถเพิ่มเนื้อหาของไฟล์ใหม่ไปท้าย file-all.txt ด้วย Syntax ดังนี้

# cat file4.txt >> file-all.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

คำสั่ง cat สามารถใช้คัดลอกเนื้อหาไฟล์ไปสู่ไฟล์ใหม่ได้ ไฟล์ใหม่สามารถตั้งชื่อได้ตามต้องการ ตัวอย่าง คัดลอกไฟล์จากตำแหน่งปัจจุบันไปยังไดเรกทอรี /tmp/

# cat file1.txt > /tmp/file1.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

คัดลอกไฟล์จากตำแหน่งปัจจุบันไป /tmp/ และเปลี่ยนชื่อ

# cat file1.txt > /tmp/newfile.cfg
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

การใช้งานที่น้อยกว่าของ cat คือสร้างไฟล์ใหม่ด้วย Syntax ด้านล่าง เมื่อแก้ไขเสร็จ กด CTRL+D เพื่อบันทึกและออกจากไฟล์ใหม่

# cat > new_file.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

เพื่อให้นับหมายเลขบรรทัดทั้งหมดของไฟล์ รวมถึงบรรทัดว่าง ใช้สวิตช์ -n

# cat -n file-all.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

เพื่อแสดงหมายเลขเฉพาะบรรทัดที่ไม่ใช่บรรทัดว่าง ใช้สวิตช์ -b

# cat -b file-all.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

อยากเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง cat ของ Linux? อ่านบทความของเราเกี่ยวกับ 13 ตัวอย่างการใช้ 'cat' ที่มีประโยชน์ใน Linux

เรียนรู้วิธีใช้คำสั่ง Tac ใน Linux

อีกฝั่งหนึ่ง คำสั่ง tac เป็นคำสั่งที่รู้จักน้อยและใช้น้อยกว่าในระบบ *nix Tac เป็นเวอร์ชันย้อนกลับของคำสั่ง cat (สะกดย้อนกลับเช่นกัน) ซึ่งพิมพ์แต่ละบรรทัดของไฟล์เริ่มจากบรรทัดล่างสุดจนถึงบรรทัดบนสุดไปยัง Standard Output ของเครื่อง

# tac file-all.txt
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

ตัวเลือกสำคัญที่สุดของคำสั่งนี้คือ สวิตช์ -s ซึ่งแยกเนื้อหาของไฟล์โดยอิงจาก String หรือ Keyword จากไฟล์

# tac file-all.txt --separator "two"
เชี่ยวชาญ Linux: การใช้งานคำสั่ง cat และ tac อย่างเป็นปฏิบัติ

การใช้งานสำคัญอีกอย่างของ tac คือช่วยได้มากในการ Debug ไฟล์ Log โดยการย้อนลำดับเวลาของเนื้อหา Log

$ tac /var/log/auth.log
Or to display the last lines
$ tail /var/log/auth.log | tac

ตัวอย่าง Output

tecmint@tecmint ~ $ tac /var/log/auth.log
pr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
... (ตัดทอน)
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
... (ตัดทอน)

เหมือนกับคำสั่ง cat คำสั่ง tac ทำงานได้ดีในการจัดการไฟล์ข้อความ แต่ควรหลีกเลี่ยงการใช้กับไฟล์ประเภทอื่น โดยเฉพาะไฟล์ Binary หรือไฟล์ที่บรรทัดแรกระบุโปรแกรมที่จะรันมัน