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