我想要提取在
然而,如果我用
难道
请问你有什么主意吗?
/etc/lvm/lvm.conf
中配置的过滤规则,例如filter = [ "r|/dev/sda|" ]
。我希望sed
返回"r|/dev/sda|"
。因此,我尝试了以下脚本:
echo ' filter = [ "r|/dev/sda|" ] ' | sed -r 's:^\s*filter\s*=\s*\[\s*([^\s]+)\s*\]:\1:g'
但它没有起作用,脚本返回了filter = [ "r|/dev/sda|" ]
。我已经尝试了一些在线正则表达式测试工具,该组已被正确匹配。然而,如果我用
.+
替换[^\s]+
,它就可以工作了。难道
[^\s]+
不是表示一个以上的非空白字符吗?请问你有什么主意吗?
[^[:space:]]
可以使用。 - Wiktor Stribiżewgrep
命令,请尝试使用grep -oP 'filter.*\K".*?"' inputfile
进行过滤。 - P....\K
代表什么意思? - vesontio\K
之前的所有内容。@vesontio - P....