如何使用sed命令提取括号内的特定字符

  • 本文关键字:字符 何使用 sed 命令 提取 sed
  • 更新时间 :
  • 英文 :


我想使用sed提取括号内的原子符号。

我的数据格式是C(X12),我只想要X符号

例如:测试命令:

echo "C(Br12)" | sed 's/[0-9][0-9])$//g'

给我CCD_ 2。

您可以使用

sed -n 's/.*((.*)[0-9]{2})$/1/p'

查看在线演示:

sed -n 's/.*((.*)[0-9]{2})$/1/p' <<< "c(Br12)"
# => Br

详细信息

  • -n-抑制默认行输出
  • .*((.*)[0-9]{2})$-匹配的正则表达式
    • .*-任何文本
    • (-(字符
    • (.*)-捕获组1:最后一个之前的任何文本
    • [0-9]{2}-两位数
    • )$-字符串末尾的)
  • 1-替换为组1值
  • p-打印替换的结果

例如:

echo "C(Br12)" | sed 's/C((.).*/1/'
  • C(-完全匹配C(
  • .匹配任何内容
  • CCD_ 17-匹配任意一个字符-并且";记住";它在反向引用1
  • .*忽略其背后的一切
  • C(Br0——用记忆中的东西代替它。第一个字符

有关详细信息,请研究sed、regex和backreferences。

尝试使用以下命令

echo "C(BR12)" | cut -d "(" -f2 | cut -d ")" -f1 | sed 's/[0-9]*//g'

切割工具会裂开,让你把绳子夹在中间。然后将字符串传递给sed,以替换字符串中的数字。

不是一个完全sed的解决方案,但这将为您提供输出。

最新更新