什么是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/
答案 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]|\.)*
将匹配任何数字或.
零次或多次,这就是我们想要的
前一个标记后面跟任何空格字符或行尾