Bash:
แปลงสตริงเป็นตัวเล็ก
วิธีการ:
นี่คือวิธีง่ายๆในการแปลงสตริงเป็นตัวพิมพ์เล็กใน Bash:
str="Make Me Lower Case"
lower_str=$(echo "$str" | tr '[:upper:]' '[:lower:]')
echo $lower_strผลลัพธ์:
make me lower caseBash 4.0 ขึ้นไปมีวิธีในตัวด้วยการขยายพารามิเตอร์:
str="Make Me Lower Case"
lower_str="${str,,}"
echo $lower_strผลลัพธ์:
make me lower caseลงลึก
ก่อน Bash 4.0, วิธีที่ใช้กันทั่วไปในการแปลงสตริงเป็นตัวพิมพ์เล็กมีการใช้ยูทิลิตีภายนอกเช่น tr, awk, หรือ sed แต่ละตัวมีวิธีที่แตกต่างกันในการจัดการสตริงนอกเหนือจากการเปลี่ยนตัวพิมพ์ แต่อาจจำเป็นต้องสร้างกระบวนการใหม่ซึ่งส่งผลต่อประสิทธิภาพ
การนำเสนอไวยากรณ์ ${parameter,,pattern} ใน Bash 4.0 มีคุณสมบัติในตัวเพื่อแปลงสตริงซึ่งเร็วกว่าและไม่ต้องพึ่งพายูทิลิตีภายนอก มีทางเลือกอื่นใน Bash เอง:
awk:echo $str | awk '{print tolower($0)}'sed:echo $str | sed 's/[A-Z]/\L&/g'tr:echo $str | tr '[:upper:]' '[:lower:]'- ตามที่แสดงข้างต้น
ในเรื่องของการใช้งาน, ${parameter,,pattern} ไม่เพียงแต่เปลี่ยนอักขระ ASCII; มีความตระหนักถึง UTF-8 และสามารถจัดการกับอักขระที่ไม่ใช่ภาษาอังกฤษได้ ทำให้เหมาะสมสำหรับการใช้งานในระดับสากล
ดูเพิ่มเติม
- Bash Parameter Expansion: https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
- คำสั่ง
tr: https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html - การเขียนโปรแกรม AWK: https://www.gnu.org/software/gawk/manual/gawk.html
- ตัวแก้ไขสตรีม
sed: https://www.gnu.org/software/sed/manual/sed.html