2016-11-10 1 views
0

나는 하나의 bash 스크립트에서 작업을 수행하고 있는데, 문자열을 일치시키기 위해 정규 표현식을 사용하고 출력을 변수에 저장하여 재사용해야합니다. 나는이 많은 방법을 시도 변수에 grep 출력 값을 저장하는 방법

#!/bin/sh 

NAME="MET-3-get-code-from-string" 
por="$($NAME | grep -P -o -e '(?<=MET-).*?(\d+)')" #this should store 3 in variable por 

echo $por 

여기

내 스크립트입니다,하지만 난 점점 오전 오류 :
./check.sh : MET-3-얻을-문제-ID-에서 분기 -name : 찾을 수 없습니다.

개별 grep 명령을 실행 한 후 올바르게 작동하면 올바르게 작동합니다. 하지만 출력을 저장할 수 없습니다.

는 또한 시도 :

por=$($NAME | grep -P -o -e '(?<=MET-).*?(\d+)') 
por=$NAME | grep -P -o -e '(?<=MET-).*?(\d+)' 

및 다른 많은 유사한 참조.

하지만 작동하지 않습니다. 누구든지이 일을 도와 주실 수 있습니까? 나는 bash에서 많은 경험을하지 못했다.

감사합니다.

답변

1

변경

por="$($NAME | grep -P -o -e '(?<=MET-).*?(\d+)')" 

또한

por="$(echo "$NAME" | grep -P -o -e '(?<=MET-).*?(\d+)')" 

에, 당신이 닫는 따옴표 누락이 일

+0

(어쩌면 그냥 오타, NAME="MET-3-get-code-from-string"을해야한다). AMD 감사합니다 :) – rut2

관련 문제