다음 명령의 입력으로 사용하기 위해 파일에서 텍스트 조각을 가져오려고 합니다. 단어는 항상 "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')