2016-06-13 85 views
1

插件名称在一个shell脚本,我得到这条线WordPress插件文件的版本:摘自文件使用grep

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续ains 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 -- // 

回答

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) 
+0

我需要它的一个变量。你能更新答案吗? – Xaver

+0

@revaxarts肯定,看到我更新的答案。 – fedorqui

+0

我总是得到“如何使用”的消息:((没有'-P'选项) – Xaver