sed 문법 질문입니다.

dotri의 이미지

다음과 같은 내용의 텍스트 파일 a.txt 가 있습니다.

landbird                IN      A       192.168.0.1
test                    IN      A       192.168.0.1

mx0            IN            A        10.0.0.1
mx1            IN            A        10.0.0.1
mx2            IN            A        10.0.0.1
...
mx100            IN            A        10.0.0.1

이 파일에 대해 다음과 같은 sed 명령을 실행했습니다. 파일 a.txt 에서 landbird 행의 숫자부분(IP주소)을 다른 문자열로 대체하는 명령입니다.

sed "/landbird/s/[0-9]\{3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/10.0.0.1/" a.txt > b.txt

이 명령을 실행한 결과 생성된 b.txt 에는, 제가 원하던대로 다음과 같은 내용이 되어 있었습니다.

landbird                IN      A       10.0.0.1
test                    IN      A       192.168.0.1

mx0            IN            A        10.0.0.1
mx1            IN            A        10.0.0.1
mx2            IN            A        10.0.0.1
...
mx100            IN            A        10.0.0.1

landbird 행의 IP 주소가 제가 원하는대로 바뀌었지요. 그런데.. 위의 sed 명령을 수정하여, 이번에는 mx1 행의 IP 주소를 바꾸려고 합니다.

sed "/mx1/s/[0-9]\{3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/192.168.0.1/" a.txt > b.txt

이 명령을 실행하면, mx1 행의 IP 주소가 바뀌지 않고 그대로 10.0.0.1 이 됩니다. 똑같은 명령으로 landbird 행에서는 잘 되던것이 mx1 행에서는 안됩니다.

정상적이라면, mx1 행뿐만 아니라 mx1?행, mx100 행도 모두 192.168.0.1 이 되어야 할것 같은데 단 한행도 안바뀌고 그대로 a.txt 가 b.txt 로 복사됩니다.

명령이 잘못된것인지, 어떤 특수한 상황에 처해있는건지도 잘 모르겠습니다. 도움을 요청합니다.
[/code]

익명 사용자의 이미지

IP 젤 앞에 놈 숫자 갯수가 3개로 고정되있네요.
타겟은 10 으로 두갠데..

dotri의 이미지

하하 정말 감사합니다.
단순한걸 못보고 있었네요 에휴...
왜 이렇게 주의가 부족한지;