grep regex如何删除单引号
我想从grep regex如何删除单引号,regex,linux,grep,lvm,Regex,Linux,Grep,Lvm,我想从lvscan的输出中获取带引号的字符串,它是: ACTIVE '/dev/mysys/root' [297.46 GiB] inherit 我所做的是使用下面的代码: lvscan | grep -o "[^']\+\b'" 我得到的是: /dev/mysys/root' 如果我删除最后一个单引号,我会得到三行: ACTIVE /dev/mysys/root [297.46 GiB] inherit 我还尝试: lvscan | grep -o "[@(^
lvscan
的输出中获取带引号的字符串,它是:
ACTIVE '/dev/mysys/root' [297.46 GiB] inherit
我所做的是使用下面的代码:
lvscan | grep -o "[^']\+\b'"
我得到的是:
/dev/mysys/root'
如果我删除最后一个单引号,我会得到三行:
ACTIVE
/dev/mysys/root
[297.46 GiB] inherit
我还尝试:
lvscan | grep -o "[@(^'\+.*)].*\>'"
lvscan | grep -o "[^']\+\>'"
我错过了什么
如有任何意见,将不胜感激。谢谢。您可以使用
cut
而不是grep
:
lvscan | cut -f2 -d\'
如果您有
-p
和grep
可以使用
lvscan | grep-oP“(?也可以使用grep-oP”'\K[^']+(?='))“
很明显,我没有使用Perl,我明天会检查它。非常感谢,vks,这行代码对我很有用,我并不在乎它是否是Perl正则表达式。不过,一个有趣的问题仍然存在,是否有一个基本正则表达式解决方案?@Taowan Basic正则表达式可以像”([^']*)一样使用)“
然后抓取组1,但我没有在grep中使用过,所以我不确定我要删除引号的原因是我想将输出打印到一个变量以供以后使用。坚持尝试是为了学习,再次感谢。最后一行应该是:任何评论都将不胜感激。谢谢。非常感谢,这一行与我们一样有效LH.我想你的建议会容易些。但是vks的答案是第一位的,所以我必须接受vks。你在哪里看到这样的规则的?:-)