在shell脚本中,我使用以下行获取WordPress插件文件的版本:
VERSION=`grep "^Version" $PLUGIN | awk -F' ' '{print $2}' | tr -d '\r'`
$VERSION
包含文件中的版本号(例如 2.1 )
当我试图获得名称时,问题似乎是空格字符:
PLUGINNAME=`grep "^Plugin Name" $PLUGIN | awk -F' ' '{print $2}' | tr -d '\r'`
$PLUGINNAME
包含Name:
但不包含插件。
$PLUGIN
是插件文件的位置,例如my-plugin/index.php
以下是此文件的内容(已删除):
<?php
/*
Plugin Name: My Plugin Name
Plugin URI: http://example.com
Description: the description of the plugin
Version: 2.1
Author: revaxarts.com
Author URI: http://example.com
*/
// -- stripped -- //
答案 0 :(得分:3)
您可以使用grep
的后视:
$ grep -Po '(?<=^Version: ).*' your_file.php
2.1
$ grep -Po '(?<=^Plugin Name: ).*' your_file.php
My Plugin Name
这会查找Version:
或Plugin Name:
之后的所有文字,当这些字符串出现在一行的开头时。
由于这使用了-P
用于Perl正则表达式(在OS X中不可用),让我们去awk
:
awk -F": " '/^Plugin Name:/ {print $2}' file
这会获得以Plugin Name:
开头的行并打印第二个字段,将字段视为:
- 分隔(:
加空格)。
要将值存储在变量中,只需使用var=$(command)
语法:
plugin_name=$(awk -F": " '/^Plugin Name:/ {print $2}' file)