แปลงสตริงเป็นตัวเล็ก

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 เอง:

  1. awk: echo $str | awk '{print tolower($0)}'
  2. sed: echo $str | sed 's/[A-Z]/\L&/g'
  3. tr: echo $str | tr '[:upper:]' '[:lower:]' - ตามที่แสดงข้างต้น

ในเรื่องของการใช้งาน, ${parameter,,pattern} ไม่เพียงแต่เปลี่ยนอักขระ ASCII; มีความตระหนักถึง UTF-8 และสามารถจัดการกับอักขระที่ไม่ใช่ภาษาอังกฤษได้ ทำให้เหมาะสมสำหรับการใช้งานในระดับสากล

ดูเพิ่มเติม