从Wordpress插件文件夹grep版本号

时间:2015-05-07 10:09:55

标签: regex wordpress grep wordpress-plugin

什么是grep regex来提取版本号,如

 Version: 3.1.5
 * Version: 3.1.5

将输出 3.1.5

但它不应该喜欢

MIME-Version: 1.0\n

这是我的grep命令

grep -ri 'version\s*:\s*[0-9\.]\w*' /home/test/public_html/wp-content/plugins/plugin_name 

@anubhava woocommerce是一个文件夹。此文件夹下有文件woocommerce.php

**内容woocommerce.php **

 * Plugin Name: WooCommerce
 * Plugin URI: http://www.woothemes.com/woocommerce/
 * Description: An e-commerce toolkit that helps you sell anything. Beautifully.
 * Version: 2.3.8
 * Author: WooThemes
 * Author URI: http://woothemes.com
 * Requires at least: 4.0
 * Tested up to: 4.2

工作

grep -rPo "(^|\s|^\*)+(Version\s*:\s*)\K([0-9]|\.)*(?=\s|$)" /home/test/public_html/wp-content/plugins/woocommerce/

2 个答案:

答案 0 :(得分:0)

您可以使用grep -oP(PERL样式正则表达式):

grep -oP 'Version: *\K\S+' file
3.1.5
3.1.5

Version: *匹配文字Version:,后跟0或更多空格。 \K重置匹配信息,\S+匹配版本号。

答案 1 :(得分:0)

grep -rPo "(^|\s|^\*)+(Version\s*:\s*)\K([0-9]|\.)*(?=\s|$)" /home/test/public_html/wp-content/plugins/attachments/

说明:

  • -P代表PCRE,-o仅代表该行的匹配部分

  • (^|\s)+(Version: )会在开头或一个或多个空格处匹配Version\K会丢弃匹配

  • ([0-9]|\.)*将匹配任何数字或.零次或多次,这就是我们想要的

  • 前一个标记后面跟任何空格字符或行尾