与awk完全匹配

时间:2015-01-14 17:35:42

标签: awk sed

我正在尝试使用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作为输出

1 个答案:

答案 0 :(得分:3)

您可以选择字符串匹配

$ awk -F '=> ' '$1 == "extension_dir "' input
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
  • $1 == "extension_dir "匹配第一个字段$1extension_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将打印第二个字段的值