sed 사용 시 참고사항 sbin2012. 11. 15. 12:04
script에서 URL parsing 을 위해 sed 를 사용하다가 특수 문자와 expression 충돌 때문에 한참을 헤맸다. 하기와 같이 해결~!
sed로 Add/Replace 하고자 하는 string이 URL등 “.”, “/” 등의 특수문자 포함인 경우 “s///” expression 의 규칙과 충동된다. 이 경우 아래와 같은 방법으로치환하여 사용 가능하다
A. “.”, “/” 등의 특수 문자를 일반 문자로 중복 치환한다.
#!/bin/sh VALUE1=http://111.22.33.4/test sed -e 's/\/.*//' -e 's/ABC.*/ABC='${VALUE1}'/g' ./test.conf > ./test.conf #sed에서 expression error 발생한다. VALUE2=${VALUE1//./\\.} #”.” 을 “\.”으로 치환 VALUE2=${ VALUE2//\//\\/} #”/” 를 “\/” 으로 치환 sed -e 's/\/.*//' -e 's/ABC.*/ABC='${VALUE2}'/g' /etc/dimark/dimclient.conf ./test.conf > ./test.conf #정상적인 URL String이 추가된다. |
B. sed 의 s expression 내token을 “/” 대신 “!” 로 교체하여 사용하는 경우 URL을direct로 add/replace 할 수 있다.
#!/bin/sh VALUE1=http://111.22.33.4/test sed -e 's/\/.*//' -e 's!ABC.*!ABC='${VALUE1}'!g' ./test.conf > ./test.conf |
'sbin' 카테고리의 다른 글
FTP 무한 반복 Script (0) | 2012.11.15 |
---|---|
SecureCRT 사용시 유용 정보 (0) | 2012.11.15 |
Ubuntu 에서 vi key-layout이 이상한 경우 (0) | 2012.11.15 |
Linux에서 하위 폴더 내 SVN tag 삭제 (0) | 2012.11.15 |
PuTTY SSH Server 연결시 Auto Login 설정 (0) | 2012.11.15 |