Sed 사용법 질문입니다..

nahs777의 이미지

SED를 처음 사용해보는 초보자입니다. 나름 이해했다고 생각했지만.. 전혀 생각대로 동작하지 않는군요.ㅠㅠ

하고 싶은일은
앞에 문자열(길이 알수 없음) 12 2 204 08.12.02
앞에 문자열(길이 알수 없음) 2 1 71 08.12.02

이렇게 되어 있는 화일에서 204 71 같이 08.12.02 앞의 숫자만을 추출하려 합니다..

's/*([1-9]\)\ \08.12.02$/\1/g' 이렇게 하면 될까 했는데.. 역시나 안돼더군요.

고수님들의 답변 부탁드립니다.

garam111의 이미지

$ sed 's/.* \([0-9]\+\) 08\.12\.02$/\1/g' dest.txt

===================================
행동할 때 열정은 자라난다.

nahs777의 이미지

감사합니다 잘 동작하네요

주신식에서 두가지 질문 드리고 싶은게 있는데요

우선 처음에 .* 로 표현하셨는데 왜 * 이 아니라 .* 로 표현하셨는지

두번째로 \([0-9]\+\) 이 버퍼 부분이신데 \([0-9]*\) 로는 왜 동작하지 않는지

답변해 주시면 감사하겠습니다.^^

바라미의 이미지

정규표현식에서 *는 임의 문자열을 가리키는게 아니라, 반복자입니다.
.(점) 이 임의의 한 문자를 가리키고, 그거 바로뒤에 *이 붙으므로 임의의 문자가 0번 혹은 그 이상 반복된다는 의미입니다..