ค้นหาเว็บไซต์

วิธีใช้คำสั่ง 'cat' และ 'tac' พร้อมตัวอย่างใน Linux


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

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

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

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

cat file.txt

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

cat file1.txt file2.txt file3.txt

คำสั่งนี้ยังสามารถใช้เพื่อเชื่อมต่อ (รวม) ไฟล์หลายไฟล์ให้เป็นไฟล์เดียวโดยใช้ตัวดำเนินการเปลี่ยนเส้นทาง Linux “> ”

cat file1.txt file2.txt file3.txt > file-all.txt

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

cat file4.txt >> file-all.txt

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

cat file1.txt > /tmp/file1.txt 

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

cat file1.txt > /tmp/newfile.cfg

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

cat > new_file.txt

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

cat -n file-all.txt

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

cat -b file-all.txt

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

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

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

tac file-all.txt

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

tac file-all.txt --separator "two"

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

tac /var/log/auth.log

Or to display the last lines

tail /var/log/auth.log | tac
ผลลัพธ์ตัวอย่าง
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
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: 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 opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: 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)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: 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 opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

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