Bash:
แปลงสตริงเป็นตัวเล็ก
วิธีการ:
นี่คือวิธีง่ายๆในการแปลงสตริงเป็นตัวพิมพ์เล็กใน Bash:
str="Make Me Lower Case"
lower_str=$(echo "$str" | tr '[:upper:]' '[:lower:]')
echo $lower_str
ผลลัพธ์:
make me lower case
Bash 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