如何使用 grep 命令从一行中查找特定模式?

如何使用 grep 命令从一行中查找特定模式?

为了更清楚,我需要获取已用空间百分比(仅限 VOL(第 7 行)行中不包含其他内容的百分比) 使用 grep 命令*

答案1

使用带有前瞻功能的 grep。它会查找一个或多个后跟 a 的数字,%然后仅打印该数字。

grep -Po "[0-9]+(?=%)"
  • -P:与 Perl 兼容的正则表达式,因此我们可以使用前瞻。
  • -o:只打印匹配的部分。

$ echo '/dev/sda3 22G 4.1G 17G 20% /vol/store' | grep -Po "[0-9]+(?=%)"
20

答案2

另一种可能性:

echo "/dev/sda3        22G  4.1G   17G  20% /vol/store" | grep -o "[[:digit:]]*%"
20%

没有 % 符号:

echo "/dev/sda3        22G  4.1G   17G  20% /vol/store" | grep -Po "[[:digit:]]*(?=%)"
20

相关内容