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

正则表达式 – 将匹配模式的一部分保存到变量

发布时间:2020-12-13 22:54:54 所属栏目:百科 来源:网络整理
导读:我想提取匹配模式的子字符串并将其保存到文件中.一个示例字符串: Apr 12 19:24:17 PC_NMG kernel: sd 11:0:0:0: [sdf] Attached SCSI removable disk 我想提取括号之间的部分,在这种情况下[sdf]. 我试图做一些像grep -e'[$subtext]’这样的东西,将括号中的
我想提取匹配模式的子字符串并将其保存到文件中.一个示例字符串:
Apr 12 19:24:17 PC_NMG kernel: sd 11:0:0:0: [sdf] Attached SCSI removable disk

我想提取括号之间的部分,在这种情况下[sdf].

我试图做一些像grep -e'[$subtext]’这样的东西,将括号中的文本保存到变量中.当然这不行,但我正在寻找一种类似于此的方法.在这样的正则表达式中包含一个变量是非常优雅的.我能做些什么?

谢谢!

这可能是一个更好的方法,只使用bash,但是:
echo 'Apr 12 19:24:17 PC_NMG kernel: sd 11:0:0:0: [sdf] Attached SCSI removable disk' 
| sed -s 's/.*[(.*)].*/1/'

正如Jurgen指出的那样,这匹配不匹配的行.如果您不想输出不匹配的行,请使用’-n’,因此它不会输出模式,’/ p’在匹配时输出模式.

| sed -n 's/.*[(.*)].*/1/p'

(编辑:李大同)

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

    推荐文章
      热点阅读