加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 使用sed删除字符串周围的开始和结束方括号

发布时间:2020-12-15 18:37:34 所属栏目:安全 来源:网络整理
导读:我在Ubuntu 12.04.1 LTS上的bash shell中运行此命令.我试图一举删除[和]字符,即无需第二次管道. 我知道方括号在正则表达式中有特殊含义所以我通过在反斜杠前加上它来逃避它们.我期待的结果只是字符串123但方括号仍然存在,我很想知道原因! ~$echo '[123]' |
我在Ubuntu 12.04.1 LTS上的bash shell中运行此命令.我试图一举删除[和]字符,即无需第二次管道.

我知道方括号在正则表达式中有特殊含义所以我通过在反斜杠前加上它来逃避它们.我期待的结果只是字符串123但方括号仍然存在,我很想知道原因!

~$echo '[123]' | sed 's/[[]]//'
[123]
如果您仔细遵循 manual,这很容易:字符类中的所有成员都失去特殊含义(除了少数例外).并且如果将其放在列表中的第一位,则失去其特殊含义.尝试:
$echo '[123]' | sed 's/[][]//g'
123
$

这说:

>在外部[方括号]内,替换任何包含的字符,即:

>]和
> [[

>用空字符串替换它们中的任何一个 – 因此空替换字符串//,
>到处(全局)替换它们 – 因此最终g.

同样,每当包含它时,必须是班级中的第一个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读