如何在 Bash 中获取命令输出的一部分?
例如,命令php -v输出:
PHP 5.3.28 (cli) (built: Jun 23 2014 16:25:09)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies with the ionCube PHP Loader v4.6.1, Copyright (c) 2002-2014, by ionCube Ltd.
Run Code Online (Sandbox Code Playgroud)
我只想输出PHP 5.3.28 (cli)部分。我怎么做?
我试过php -v | grep 'PHP 5.3.28',但输出:PHP 5.3.28 (cli) (built: Jun 23 2014 16:25:09)这不是我想要的。
你可以试试下面的AWK命令,
$ php -v | awk 'NR==1{print $1,$2,$3}'
PHP 5.3.28 (cli)
Run Code Online (Sandbox Code Playgroud)
它从输入的第一行打印前三列。
NR==1(条件)即,{}仅当 NR 变量的值为 1 时才执行其中的语句。{print $1,$2,$3}打印 col1,col2,col3。,在打印语句中表示 OFS(输出字段分隔符)。