如何使用 cut(或不使用 cut)从字符串中获取特定的字符集

如何使用 cut(或不使用 cut)从字符串中获取特定的字符集

我正在尝试从此命令中提取 PHP 版本: php -v

php -v
PHP 7.3.27-9+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Feb 23 2021 15:10:30) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.27, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.27-9+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

通过使用 cut 我可以获得我需要的数据,但是, cut 还解析其他 3 行,所以我以:

php -v | cut -c4-10

7.3.27
yright 
d Engin
with Z

有没有办法告诉 cut 在第一行之后停止?如果没有,我还有哪些选择?

答案1

php -v | head -n1 | cut -c4-10

答案2

php -v | sed -En '/^PHP/s/[^0-9]+(([0-9]+\.){2}[0-9]+)\-.+/\1/p'

这用于sed选择以 开头的行PHP,然后从该行中提取版本号。

相关内容