WordPress 플러그인 폴더에서 버전 번호를 grep합니다.

WordPress 플러그인 폴더에서 버전 번호를 grep합니다.

버전 번호를 추출하는 grep 정규 표현식이란 무엇입니까?

 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 

작동 안함

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

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/attachments/

답변1

당신은 그것을 사용할 수 있습니다 :

grep -Po "(?<=Version: )([0-9]|\.)*(?=\s|$)"

MIME-Version: 1.0대신에 다음이 있는 경우 MIME-Version: 1.0\n:

grep -Po "(^|\s)+(Version: )\K([0-9]|\.)*(?=\s|$)"

설명하다:

  • -PPCRE를 나타내며 -o라인의 일치하는 부분만 가져옵니다.

  • (^|\s)+(Version: )Version시작 부분이나 하나 이상의 공백에서 일치 하면 \K일치 항목이 삭제됩니다 .

  • ([0-9]|\.)*어떤 숫자와도 일치하거나 .0회 이상 일치합니다. 그것이 우리가 원하는 것입니다.

  • 이전 토큰 뒤에는 공백 문자나 줄 끝이 옵니다.

시험:

$ cat file.txt 
 Version: 3.1.5
 * Version: 3.1.5
MIME-Version: 1.0\n

$ grep -Po "(?<=Version: )([0-9]|\.)*(?=\s|$)" file.txt 
3.1.5
3.1.5



$ cat file.txt 
Version: 3.1.5
 * Version: 3.1.5
MIME-Version: 1.0

$ grep -Po "(^|\s)+(Version: )\K([0-9]|\.)*(?=\s|$)" file.txt 
3.1.5
3.1.5

답변2

당신은 다음과 같은 것을 사용할 수 있습니다

grep -w Version: /home/test/public_html/wp-content/plugins/plugin_name |grep -v -- -Version|awk '{print $NF}'

답변3

이게 효과가 있을 거야

awk '/[^[:graph:]]Version/{print $NF}' file

입력하다

 Version: 3.1.5
 * Version: 3.1.5
MIME-Version: 1.0
J_Version: 7.25
A.Version: 50

산출

3.1.5
3.1.5

관련 정보