sed 替换 [] 方括号

时间:2025-05-13 08:21:05

    使用sed替换一些特殊字符时,需要进行转义,但是如果想替换 方括号 [],就可能需要一些特殊的技巧。

1、替换[ 或者 ] 

echo '[test' |sed  's/\[//'
echo 'test]' |sed 's/\]//'
echo 'test]' |sed 's/]//'

对比可以发现, 替换 [ 时必须转义,而替换 ] 时可以不转义

2、 同时替换 []

echo '[test]' |sed 's/[\[\]]/'   # 无法替换
echo '[test]' |sed 's/[\[]]/'    # 无法替换

当需要同时发现以上两种方法都无法完成替换

方法一:

使用两次 sed

echo '[test]' |sed 's/\[//' |sed 's/]//'

方法二:

echo '[test]' |sed 's/[][]//'

具体原理有空再来补充