与awk完全匹配

Exact match with awk

我正在尝试使用 bash script.It 提取 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 作为输出

您可以选择字符串匹配为

$ awk -F '=> ' ' == "extension_dir "' input
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
  • == "extension_dir " 匹配第一个字段中的值,</code> 与 <code>extension_dir

如果您想使用正则表达式,请将锚点添加到您的模式中

$ awk -F '=> ' ' ~ /^extension_dir $/' input
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

编辑

您可以指定要打印的字段为

$ awk -F '=> ' ' == "extension_dir "' input
/usr/lib64/php/modules 

$ awk -F '=> ' ' ~ /^extension_dir $/{print }' input
/usr/lib64/php/modules 
  • print 将打印第二个字段的值