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

前端之家收集整理的这篇文章主要介绍了正则表达式 – 将匹配模式的一部分保存到变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想提取匹配模式的子字符串并将其保存到文件中.一个示例字符串:
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'
原文链接:https://www.f2er.com/regex/356628.html

猜你在找的正则表达式相关文章