sed 또는 grep을 사용하여 파일에서 단어를 가져오는 방법

sed 또는 grep을 사용하여 파일에서 단어를 가져오는 방법

다음 명령의 입력으로 사용하기 위해 파일에서 텍스트 조각을 가져오려고 합니다. 단어는 항상 "JID_"로 시작하고 그 뒤에 임의의 숫자/문자가 옵니다.

예를 들어 :

        SelectorSet
            Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim

해당 문자열에 변수 $JID를 할당하고 싶습니다. 어떻게 라인에서 잡아당길 수 있나요? sed 또는 grep을 사용하는 것이 바람직하지만 어떤 방법이라도 괜찮습니다.

답변1

이것은 나를 위해 일했습니다

(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2

001264193601

답변2

좋아, 방금 몇 분 동안 해킹해서 다음과 같은 결과를 얻었습니다.

grep JID job.txt | sed -e "s/.*InstanceID = //" -e "s/,.*//"

이것의 출력으로 :

JID_001264194552

내 생각엔 그게 효과가 있을 것 같아.

답변3

이 명령은 다음과 같습니다.

var=$(sed -n 's/.*InstanceID = JID_\([0-9]\+\),.*/\1/p')
echo $var

다음과 같이 출력됩니다.

001264193601

주어진 입력에 대해.

"JID_"를 유지하려는 경우:

var=$(sed -n 's/.*InstanceID = \(JID_[0-9]\+\),.*/\1/p')

관련 정보