grep正则表达式如何删除单引号

grep regex how to remove single quote

我想从 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\'

如果你有 -Pgrep 你可以使用

lvscan | grep -oP "(?<=')[^']+(?=')"