从字符串中排除特定字符后的所有内容
Exclude from a string everything after certain character
当 运行 命令获取 php 版本时 php -v
我得到了我想要减少的长输出所以输出是
PHP 7.3.27-9
而不是
PHP 7.3.27-9+ubuntu18.04.1+deb.sury.org+1 (cli)
(built: Feb 23 2021 15:10:08) ( 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+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
这意味着在符号 -
或 +
之后留下所有内容。
目前,我有这个:
php -v | grep -e '^PHP [5.*,7.*,8.*]$*'
给出输出:
PHP 7.3.27-9+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2021 15:10:08) ( NTS )
我想省略 PHP 7.3.27
之后的所有内容。
使用参数扩展。
v=$(php -v)
echo "${v%%-*}"
%
删除右侧的模式,将百分号加倍使其变得贪婪,即它删除可能的最长部分(即从左侧的第一个破折号开始)。
尝试 awk
?
php -v | awk -F'-' '/^PHP/{print }'
使用php
,它就在那里。
php -r 'print(PHP_VERSION);'
当 运行 命令获取 php 版本时 php -v
我得到了我想要减少的长输出所以输出是
PHP 7.3.27-9
而不是
PHP 7.3.27-9+ubuntu18.04.1+deb.sury.org+1 (cli)
(built: Feb 23 2021 15:10:08) ( 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+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
这意味着在符号 -
或 +
之后留下所有内容。
目前,我有这个:
php -v | grep -e '^PHP [5.*,7.*,8.*]$*'
给出输出:
PHP 7.3.27-9+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2021 15:10:08) ( NTS )
我想省略 PHP 7.3.27
之后的所有内容。
使用参数扩展。
v=$(php -v)
echo "${v%%-*}"
%
删除右侧的模式,将百分号加倍使其变得贪婪,即它删除可能的最长部分(即从左侧的第一个破折号开始)。
尝试 awk
?
php -v | awk -F'-' '/^PHP/{print }'
使用php
,它就在那里。
php -r 'print(PHP_VERSION);'