Linux tr command Part 1
สารบัญ:
- วิธีใช้คำสั่ง
tr
- ตัวเลือกการรวม
- ตัวอย่างคำสั่ง TR
- แปลงตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
- ลบอักขระที่ไม่ใช่ตัวเลขทั้งหมด
- ใส่คำแต่ละคำในบรรทัดใหม่
- ลบบรรทัดว่าง
- พิมพ์ไดเรกทอรี
$PATH
ในบรรทัดแยก - ข้อสรุป
tr
คือโปรแกรมอรรถประโยชน์บรรทัดคำสั่งในระบบ Linux และ Unix ที่แปลลบและบีบอักขระจากอินพุตมาตรฐานและเขียนผลลัพธ์ไปยังเอาต์พุตมาตรฐาน
คำสั่ง
tr
สามารถดำเนินการเช่นลบอักขระซ้ำแปลงตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็กและเปลี่ยนอักขระพื้นฐานและลบ โดยทั่วไปจะใช้ร่วมกับคำสั่งอื่น ๆ ผ่านการไพพ์
ในบทช่วยสอนนี้เราจะแสดงวิธีใช้คำสั่ง
tr
ผ่านตัวอย่างการปฏิบัติและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือกที่ใช้กันทั่วไป
วิธีใช้คำสั่ง
tr
ไวยากรณ์สำหรับคำสั่ง
tr
มีดังนี้:
tr OPTION… SET1
tr
ยอมรับอักขระสองชุดโดยปกติมีความยาวเท่ากันและแทนที่อักขระของชุดแรกด้วยอักขระที่สอดคล้องกันจากชุดที่สอง
SET
นั้นเป็นสตริงของอักขระรวมถึงอักขระพิเศษที่มีเครื่องหมายแบคสแลช
ในตัวอย่างต่อไปนี้
tr
จะแทนที่อักขระทั้งหมดจากอินพุตมาตรฐาน (linuxize) โดยการจับคู่อักขระจากชุดแรกกับชุดอักขระที่ตรงกันจากชุดที่สอง
echo 'linuxize' | tr 'lin' 'red'
การเกิด
l
แต่ละครั้งจะถูกแทนที่ด้วย
r
,
i
ด้วย
e
, และ
n
ด้วย
d
:
reduxeze
ชุดอักขระยังสามารถกำหนดได้โดยใช้ช่วงอักขระ ตัวอย่างเช่นแทนที่จะเขียน:
echo 'linuxize' | tr 'lmno' 'wxyz'
คุณสามารถใช้ได้:
echo 'linuxize' | tr 'ln' 'w-z'
เมื่อใช้ตัวเลือก
-c
(
--complement
)
tr
จะแทนที่อักขระทั้งหมดที่ไม่ได้อยู่ใน SET1
ในตัวอย่างด้านล่างอักขระทั้งหมดยกเว้น“ li” จะถูกแทนที่ด้วยอักขระสุดท้ายจากชุดที่สอง:
echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy
ดังที่คุณอาจสังเกตเห็นว่าเอาต์พุตด้านบนมีอักขระที่มองเห็นได้มากกว่าหนึ่งอินพุต นี่เป็นเพราะคำสั่ง
echo
พิมพ์อักขระบรรทัดใหม่ที่มองไม่เห็น
ซึ่งถูกแทนที่ด้วย
y
หากต้องการ echo สตริงที่ไม่มีบรรทัดใหม่ให้ใช้อ็อพชัน
-n
ตัวเลือก
-d
(
--delete
) บอกให้
tr
ลบตัวอักษรที่ระบุใน SET1 เมื่อลบตัวอักษรโดยไม่ต้องบีบให้ระบุเพียงชุดเดียว
คำสั่งด้านล่างจะลบอักขระ
l
,
i
และ
z
:
echo 'Linuxize' | tr -d 'liz'
อักขระ
L
ไม่ถูกลบเนื่องจากอินพุตประกอบด้วยตัวพิมพ์ใหญ่
L
ในขณะที่อักขระ
l
ใน SET เป็นตัวพิมพ์เล็ก
Lnuxe
ตัวเลือก
-s
(
--squeeze-repeats
) จะแทนที่ลำดับเหตุการณ์ที่เกิดซ้ำด้วยชุดอักขระใน SET สุดท้าย
ในตัวอย่างต่อไปนี้
tr
ลบอักขระช่องว่างซ้ำ:
echo "GNU \ Linux" | tr -s ' '
GNU \ Linux
เมื่อใช้ SET2 ลำดับของอักขระที่ระบุใน SET1 จะถูกแทนที่ด้วย SET2
echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux
--truncate-set1
-t
(
--truncate-set1
) บังคับให้
tr
ตัดทอน SET1 เป็นความยาวของ SET2 ก่อนที่จะทำการประมวลผลเพิ่มเติม
โดยค่าเริ่มต้นหาก SET1 มีขนาดใหญ่กว่า SET2
tr
จะใช้อักขระสุดท้ายของ SET2 อีกครั้ง นี่คือตัวอย่าง:
echo 'Linux ize' | tr 'abcde' '12'
ผลลัพธ์แสดงให้เห็นว่าตัวอักษร
e
จาก SET1 นั้นตรงกับตัวอักษรล่าสุดของ SET2 ซึ่งก็คือ
2
:
Linux iz2
ตอนนี้ใช้คำสั่งเดียวกันกับตัวเลือก
-t
:
echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize
คุณจะเห็นว่าตัวละครสามตัวสุดท้ายของ SET1 ถูกลบออก SET1 จะกลายเป็น 'ab' ความยาวเท่ากับ SET2 และไม่มีการแทนที่
ตัวเลือกการรวม
คำสั่ง
tr
ยังอนุญาตให้คุณรวมตัวเลือกต่าง ๆ ตัวอย่างเช่นคำสั่งต่อไปนี้จะแทนที่อักขระทั้งหมดยกเว้น
i
ด้วย
0
จากนั้นบีบอักขระ
0
ซ้ำแล้วซ้ำอีก:
echo 'Linux ize' | tr -cs 'i' '0'
ตัวอย่างคำสั่ง TR
ในส่วนนี้เราจะกล่าวถึงตัวอย่างการใช้งานทั่วไปของคำสั่ง
tr
แปลงตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
การแปลงตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่กลับเป็นหนึ่งในกรณีการใช้งานทั่วไปของคำสั่ง
tr
ตรงกับอักขระตัวพิมพ์เล็กทั้งหมดและ
จับคู่อักขระตัวพิมพ์ใหญ่ทั้งหมด
echo 'Linuxize' | tr '' ''
LINUXIZE
แทนที่จะเป็นคลาสอักขระคุณสามารถใช้ช่วง:
echo 'Linuxize' | tr 'az' 'A-Z'
หากต้องการแปลงตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็กให้เปลี่ยนตำแหน่งของชุด
ลบอักขระที่ไม่ใช่ตัวเลขทั้งหมด
คำสั่งต่อไปนี้จะลบอักขระที่ไม่ใช่ตัวเลขทั้งหมด:
echo "my phone is 123-456-7890" | tr -cd
หมายถึงอักขระทุกตัวและใช้ตัวเลือก
-c
คำสั่งจะลบอักขระที่ไม่ใช่ตัวเลขทั้งหมด ผลลัพธ์จะมีลักษณะดังนี้:
ใส่คำแต่ละคำในบรรทัดใหม่
ในการใส่คำแต่ละคำในบรรทัดใหม่เราต้องจับคู่อักขระที่ไม่ใช่ตัวอักษรและตัวเลขทั้งหมดและแทนที่ด้วยคำใหม่:
echo 'GNU is an operating system' | tr -cs '' '\n'
ลบบรรทัดว่าง
หากต้องการลบบรรทัดว่างเพียงบีบอักขระขึ้นบรรทัดใหม่ที่ซ้ำกัน:
tr -s '\n' < file.txt > new_file.txt
ในคำสั่งด้านบนเราใช้สัญลักษณ์การเปลี่ยนเส้นทาง
<
เพื่อส่งเนื้อหาของ
file.txt
ไปยังคำสั่ง
tr
การเปลี่ยนเส้นทาง
>
เขียนเอาต์พุตของคำสั่งไปที่
new_file.txt
พิมพ์ไดเรกทอรี
$PATH
ในบรรทัดแยก
ตัวแปรสภาพแวดล้อม
$PATH
เป็นรายการที่คั่นด้วยโคลอนของไดเร็กทอรีที่บอกเชลล์ว่าไดเร็กทอรีใดที่จะค้นหาไฟล์เรียกทำงานเมื่อคุณพิมพ์คำสั่ง
หากต้องการพิมพ์แต่ละไดเรกทอรีในบรรทัดแยกเราต้องจับคู่โคลอน (:) และแทนที่ด้วยบรรทัดใหม่:
echo $PATH | tr ':' '\n'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
ข้อสรุป
tr
คือคำสั่งสำหรับการแปลหรือลบอักขระ
แม้ว่าจะมีประโยชน์มาก
tr
สามารถใช้ได้กับอักขระเดี่ยวเท่านั้น สำหรับการจับคู่รูปแบบที่ซับซ้อนมากขึ้นและการจัดการสตริงคุณควรใช้
sed
หรือ
awk
คำสั่ง Echo ใน linux พร้อมตัวอย่าง
คำสั่ง echo เป็นหนึ่งในคำสั่งพื้นฐานและใช้บ่อยที่สุดใน Linux อาร์กิวเมนต์ที่ส่งผ่านไปยัง echo จะถูกพิมพ์ไปยังเอาต์พุตมาตรฐาน
คำสั่ง Curl ใน linux พร้อมตัวอย่าง
Curl เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งสำหรับถ่ายโอนข้อมูลจากหรือไปยังเซิร์ฟเวอร์ที่ออกแบบมาเพื่อทำงานโดยไม่ต้องมีการโต้ตอบกับผู้ใช้ ในบทช่วยสอนนี้เราจะแสดงวิธีใช้เครื่องมือ curl ผ่านตัวอย่างการใช้งานจริงและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือก curl ทั่วไป
คำสั่ง Linux พร้อมตัวอย่าง
คำสั่ง tee อ่านจากอินพุตมาตรฐานและเขียนไปยังทั้งเอาต์พุตมาตรฐานและหนึ่งไฟล์ขึ้นไปในเวลาเดียวกัน Tee ใช้กันมากที่สุดเมื่อใช้ร่วมกับคำสั่งอื่นผ่านการวางท่อ