sed问题。我究竟做错了什么?

时间:2011-05-11 15:37:16

标签: regex sed

我正在尝试用[xxx]使用sed:

替换['xxx']
sed -e 's/a[ '\(.*\)' ]/a[ \1 ]/' ./Test
sed: -e expression #1, char xx: invalid reference \1 on `s' command's RHS

我做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:4)

你需要像这样逃避[]

echo "a[ 'xxx' ]" | sed "s/a\[ '\(.*\)' \]/a[ \1 ]/"

答案 1 :(得分:2)

如何简单地删除单引号字符?为了避免混淆 shell,在表达式周围使用双引号:

 sed -e "s/'//g"

一个[ 'XXX']

一个[XXX]

格雷格约翰逊

答案 2 :(得分:0)

如何使用tr删除单引号?

printf "a['xxx']\n" | tr -d "'"
a[xxx]