"[...]"가 포함된 패턴 뒤의 첫 번째 단어를 추출합니다.

"[...]"가 포함된 패턴 뒤의 첫 번째 단어를 추출합니다.

grep패턴을 일치시킨 후 첫 번째 단어를 추출하려고 하면 문제가 발생합니다.

예를 보여 드리겠습니다.

cat test.txt
[profile dev]
xxx
xxx
[profile prod]
xxx
xxx

이제 "profile" 뒤에 있는 단어를 추출하여 결국 변수에 할당하고 싶습니다.

grep사용해 보았는데 awk단어만 추출할 수 없는 것 같습니다.

grep -oP '(?<=profile\s/)\w+' /test.txt또한 아무것도 반환하지 않습니다 awk.

awk '/^profile / {print $1}' /text.txt 

어쩌면 괄호 때문일 수도 있고, 아니면 잘 모르겠습니다. 제안해 주실 수 있나요?

답변1

"profile"이라는 단어가 로깅을 시작하지 않기 때문에 awk 모드가 실패 [profile하지만...

awk '/^\[profile/ {gsub(/]/,""); print $2}' test.txt
dev
prod

또 다른 방법은 배열을 로드하는 것입니다 split. 다음을 사용하십시오.

awk -F'[][]' '/profile/ {p=split($2,profiles," "); print profiles[2]}' test.txt
dev
prod

관련 정보