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

ตัวอย่างคำสั่ง 10 tr ใน Linux


tr (ย่อมาจาก translate) เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่มีประโยชน์ซึ่งแปลและ/หรือลบอักขระจากอินพุต stdin และเขียนลงใน stdout เป็นโปรแกรมที่มีประโยชน์สำหรับจัดการข้อความบนบรรทัดคำสั่ง

บทความนี้จะอธิบายตัวอย่าง คำสั่ง tr ที่เป็นประโยชน์สำหรับมือใหม่ที่ใช้ Linux

ไวยากรณ์สำหรับการรัน คำสั่ง tr เป็นดังนี้ โดยที่อักขระใน SET1 จะถูกแปลเป็นอักขระใน SET2

tr flags [SET1] [SET2]

ตัวอย่างคำสั่ง Linux tr

1. กรณีการใช้งาน คำสั่ง tr ง่ายๆ คือการเปลี่ยนอักษรตัวพิมพ์เล็กทั้งหมดในข้อความให้เป็นตัวพิมพ์ใหญ่และในทางกลับกัน ดังที่แสดงด้านล่าง

$ cat linux.txt

linux is my life
linux has changed my life
linux is best and everthing to me..:)
$ cat linux.txt | tr [:lower:] [:upper:]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

2. หรือคุณสามารถใช้คำสั่งต่อไปนี้เพื่อเปลี่ยนอักษรตัวพิมพ์เล็กทั้งหมดให้เป็นตัวพิมพ์ใหญ่ในไฟล์ดังที่แสดง

$ cat linux.txt | tr [a-z] [A-Z]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

3. หากต้องการบันทึกผลลัพธ์ที่เขียนลงใน stdout ในไฟล์เพื่อการประมวลผลในภายหลัง ให้ใช้คุณลักษณะการเปลี่ยนเส้นทางเอาต์พุตของเชลล์ (>) ตามที่แสดง

$ cat linux.txt | tr [a-z] [A-Z] >output.txt
$ cat output.txt 

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

4. เกี่ยวกับการเปลี่ยนเส้นทาง คุณสามารถส่งข้อมูลอินพุตไปที่ tr โดยใช้การเปลี่ยนเส้นทางอินพุต และเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์โดยใช้คำสั่งเดียวกันดังที่แสดง

$ tr [a-z] [A-Z] < linux.txt >output.txt

5. คุณสมบัติที่มีประโยชน์อีกประการหนึ่งคือ คุณสามารถใช้แฟล็ก -d เพื่อลบอักขระ เช่น เพื่อลบช่องว่างในชื่อโดเมนโดยใช้คำสั่งต่อไปนี้

$ cat domains.txt

www. tecmint. com
www. fossmint. com
www. linuxsay. com
$ cat domains.txt | tr -d '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

6. หากมีอักขระซ้ำกันในลำดับ (เช่น การเว้นวรรคสองครั้ง) ในข้อความที่คุณกำลังประมวลผล คุณสามารถใช้ตัวเลือก -s เพื่อบีบอักขระให้เหลือเพียง มีอยู่ครั้งหนึ่ง

$ cat domains.txt

www.tecmint.....com
www.fossmint.com
www.linuxsay.com
$ cat domains.txt | tr -s '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

7. ตัวเลือก -c บอกให้ tr ใช้ส่วนเสริมในส่วนที่กำหนดของ SET ในตัวอย่างนี้ เราต้องการลบตัวอักษรทั้งหมดและเหลือเพียง UID เท่านั้น

$ echo "My UID is $UID" | tr -cd "[:digit:]\n"
OR
$ echo "My UID is $UID" | tr -d "a-zA-Z"

8. นี่คือตัวอย่างการแบ่งคำ (ประโยค) บรรทัดเดียวออกเป็นหลายบรรทัด โดยแต่ละคำจะปรากฏแยกกัน

$ echo "My UID is $UID"

My UID is 1000

$ echo "My UID is $UID" | tr " "  "\n"

My 
UID 
is 
1000

9. ที่เกี่ยวข้องกับตัวอย่างก่อนหน้านี้ คุณยังสามารถแปลคำหลายบรรทัดให้เป็นประโยคเดียวได้ตามที่แสดง

$ cat uid.txt

My 
UID 
is 
1000

$ tr "\n" " " < uid.txt

My UID is 1000

10. นอกจากนี้ยังสามารถแปลอักขระเพียงตัวเดียวได้ เช่น ช่องว่างเป็นอักขระ “ : ” ดังต่อไปนี้

$ echo "linux-console.net =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

linux-console.net:=>Linux-HowTos,Guides,Tutorials

มีอักขระลำดับหลายตัวที่คุณสามารถใช้กับ tr สำหรับข้อมูลเพิ่มเติม โปรดดูหน้าคู่มือ tr

man tr

นั่นคือทั้งหมด! tr เป็นคำสั่งที่มีประโยชน์สำหรับจัดการข้อความบนบรรทัดคำสั่ง ในคู่มือนี้ เราได้แสดงตัวอย่างการใช้งาน คำสั่ง tr ที่เป็นประโยชน์สำหรับมือใหม่ที่ใช้ Linux คุณสามารถแบ่งปันความคิดของคุณกับเราผ่านแบบฟอร์มความคิดเห็นด้านล่าง