gpt4 book ai didi

shell - 如何使用 SED 替换 [] 括号

转载 作者:行者123 更新时间:2023-12-03 20:00:39 25 4
gpt4 key购买 nike

我有一个字符串,我想从中删除标点符号。

我开始了

sed 's/[[:punct:]]/ /g'

但是我在 HP-UX 上遇到了问题,不喜欢一直这样,有时我会在 $ 之后得到 0 和任何东西。在我的字符串中会消失。所以我决定尝试手动完成。

我有以下代码适用于我感兴趣的所有标点符号,除了我似乎无法将方括号“[]”与其他任何内容一起添加到我的 sed 中,否则它不会替换任何内容,并且我不会收到错误消息,所以我不确定要解决什么问题。

无论如何,这就是我目前拥有的,并想添加 []到。
sed 's/[-=+|~!@#\$%^&*(){}:;'\'''\"''\`''\.''\/''\\']/ /g'

顺便说一句,我在 Solaris、Redhat 和 HP 上使用 KSH

最佳答案

您需要在表达式的早期放置括号:

sed 's/[][=+...-]/ /g'

通过将 ']' 作为紧跟在左括号之后的第一个字符,它被解释为字符集的成员而不是右括号。在方括号内的任何位置放置一个 '[' 使其成为集合的成员。

对于这个特定的字符集,您还需要处理 -特别是,因为您不想在 [ 之间构建一系列字符和 = .所以把 -在类(class)结束时。

关于shell - 如何使用 SED 替换 [] 括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12203963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com