문자열 처리 프로그램 중 -ABC 다음 token을 받아내는 프로그램

divetou의 이미지


안녕하세요.

다음과 같은 형식의 문자열이 있을때,
-ABC 123 -BCD 234 -CDE 345 (중략) -OPQ 794 (중략)

-ABC와 -OPQ 다음의 token만을 받아내고 싶을 때..
(위의 한줄을 처리하면
123 794
와 같은 형식의 output을 받아내고 싶어서요)

쉬운 방법 없을까요?

awk를 사용하자니,, 앞에서 몇번째 token인지 세어야 하는 번거로움이..

예전에 어디서 본 것 같은데.. ㅠ_ㅠ

고수님들의 도움 부탁드립니다.

감사합니다.

aero의 이미지

sed를 사용해서 이렇게 하면 될듯하네요.

line.txt

-ABC 123 -BCD 234 -CDE 345 .. abbreviation .. -OPQ 794 .. abbreviatoin ..

명령

sed 's/-ABC\ \([0-9]\{1,\}\)\(.*\)-OPQ\ \([0-9]\{1,\}\).*/\1 \3/' line.txt

결과
123 794