ฉันใช้คำสั่งนี้ใน bash shell บน Ubuntu 12.04.1 LTS ฉันพยายามที่จะลบทั้งตัวละคร[
และ]
ตัวละครในฉากที่ตกเช่นเดียวโดยไม่ต้องไปปฎิบัติซ้ำอีกครั้ง
ฉันรู้ว่าวงเล็บเหลี่ยมมีความหมายพิเศษใน regex ดังนั้นฉันจึงหลบหนีพวกเขาโดยใส่เครื่องหมายแบ็กสแลชไว้ล่วงหน้า ผลลัพธ์ที่ฉันคาดหวังเป็นเพียงสตริง123
แต่วงเล็บเหลี่ยมยังคงอยู่และฉันชอบที่จะรู้ว่าทำไม!
~$ echo '[123]' | sed 's/[\[\]]//'
[123]
str='[123]'; str1=${str/\[/}; str2=${str1/\]}; echo $str2