Bash:
การลบเครื่องหมายอัญประกาศออกจากสตริง
วิธีการ:
Bash มีหลายวิธีในการลบอัญประกาศออกจากสตริง นี่คือตัวอย่างบางส่วน:
#!/bin/bash
# การใช้การแทนที่ตัวแปรเพื่อลบอัญประกาศเดี่ยวและคู่
STRING="\"Hello, World!\""
echo ${STRING//\"}
# การใช้ `tr` เพื่อลบอัญประกาศ
STRING="'Hello, World!'"
echo $STRING | tr -d "\'"
# การใช้ `sed` เพื่อลบอัญประกาศ
STRING="\"Hello, World!\""
echo $STRING | sed 's/"//g'
ตัวอย่างผลลัพธ์:
Hello, World!
Hello, World!
Hello, World!
ลงลึก
ตั้งแต่สมัยก่อน, คำสั่ง Unix เช่น tr
และ sed
เป็นเครื่องมือหลักสำหรับการประมวลผลข้อความ คำสั่งเหล่านี้ยังคงถูกใช้งานอยู่ในปัจจุบันเนื่องจากความยืดหยุ่นและพลังในการจัดการการเปลี่ยนแปลงข้อความเช่นการลบอัญประกาศ พวกเขาเป็นส่วนสำคัญในกล่องเครื่องมือของทุกคนที่เขียนสคริปต์เชลล์
Bash เองได้พัฒนาขึ้นและการแทนที่ตัวแปรเพิ่มอีกชั้นของความง่ายดายสำหรับการจัดการสตริงขนาดเล็ก ช่วยคุณให้พ้นจากการท่องไปยังไบนารีภายนอก, ทำให้สคริปต์ของคุณมีประสิทธิภาพมากขึ้น
ในขณะที่ tr
เหมาะสำหรับการลบอักขระ, มันไม่สามารถจัดการกับรูปแบบที่ซับซ้อนได้ sed
, ในทางกลับกัน, ใช้ regular expressions, ดังนั้นบางครั้งอาจเป็นการใช้จ่ายมากเกินไปและอาจช้ากว่าสำหรับการดำเนินการง่ายๆ
การเลือกใช้วิธีใดขึ้นอยู่กับกรณีที่เฉพาะเจาะจงของคุณ หากคุณต้องการลบอัญประกาศหลากหลายประเภทและคุณอยู่ในบริบทของสคริปต์ Bash แล้ว, การใช้การแทนที่ตัวแปรถือเป็นการตัดสินใจที่ชัดเจนเนื่องจากความง่าย แต่หากคุณกำลังแปลงสตรีมข้อความหรือข้อมูลหลายบรรทัด, tr
และ sed
เป็นเพื่อนที่คุณควรไปหา
ดูเพิ่มเติม:
- คู่มือ GNU Bash, โดยเฉพาะส่วนที่เกี่ยวกับการขยายพารามิเตอร์และการขยายพารามิเตอร์เชลล์: https://www.gnu.org/software/bash/manual/
- คู่มือคำสั่ง
tr
: https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html - ภาพรวมเกี่ยวกับเครื่องมือแก้ไขสตรีม
sed
: https://www.gnu.org/software/sed/manual/sed.html