我正在尝试使用bash脚本提取extension_dir
。它在大多数情况下有效,但有时你可以获得2行输出
php -i | awk -F '=> ' '/extension_dir/'
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
sqlite3.extension_dir => no value => no value
我希望完全匹配extension_dir
,以便结果始终为/usr/lib64/php/modules
我只想/usr/lib64/php/modules
作为输出
答案 0 :(得分:3)
您可以选择字符串匹配
$ awk -F '=> ' '$1 == "extension_dir "' input
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
$1 == "extension_dir "
匹配第一个字段$1
与extension_dir
或强>
如果要使用正则表达式,请将锚点添加到模式中
$ awk -F '=> ' '$1 ~ /^extension_dir $/' input
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
修改强>
您可以指定要打印的字段
$ awk -F '=> ' '$1 == "extension_dir "' input
/usr/lib64/php/modules
$ awk -F '=> ' '$1 ~ /^extension_dir $/{print $2}' input
/usr/lib64/php/modules
print $2
将打印第二个字段的值