sed 问题。我做错了什么?

发布于 2024-11-06 07:53:42 字数 213 浏览 1 评论 0原文

我正在尝试使用 sed 将 a[ 'xxx' ] 替换为 [ xxx ]:

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

我做错了什么?

谢谢!

I am trying to replace a[ 'xxx' ] by a[ xxx ] using sed:

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

What am I doing wrong?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一抹苦笑 2024-11-13 07:53:43

您需要像这样转义 []

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

You need to escape the [ and ] like this:

echo "a[ 'xxx' ]" | sed "s/a\[ '\(.*\)' \]/a[ \1 ]/"
木緿 2024-11-13 07:53:43

简单地删除单引号字符怎么样?为了避免混淆
shell,在表达式两边使用双引号:

 sed -e "s/'//g"

a['xxx']

a[xxx]

Greg Johnson

How about simply deleting the single-quote characters? To avoid confusing the
shell, use double-quotes around the expression:

 sed -e "s/'//g"

a['xxx']

a[xxx]

Greg Johnson

年少掌心 2024-11-13 07:53:43

使用 tr 删除单引号怎么样?

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

What about using tr to delete the single quotes?

printf "a['xxx']\n" | tr -d "'"
a[xxx]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文