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

前端之家收集整理的这篇文章主要介绍了bash – 使用sed删除字符串周围的开始和结束方括号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Ubuntu 12.04.1 LTS上的bash shell中运行此命令.我试图一举删除[和]字符,即无需第二次管道.

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

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

这说:

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

>]和
> [[

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

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

原文链接:https://www.f2er.com/bash/385813.html

猜你在找的Bash相关文章