2012-10-09 2 views
2

대다수의 경우 간단한 검색 및 바꾸기를 원하지만 경우에 따라 sed를 사용하여 제외하려는 URL 목록이 있습니다.특정 경우를 제외하고 sed를 사용하여 URL을 검색하고 바꿉니다.

href="/fetch?domain=<url>" 

는 내가 지금까지 나오지도 함께 가지고하는 것은입니다 :

http://www.dol.gov 
http://www.science.gov 
http://www.whitehouse.gov 
http://test.sandbox.local 
http://www.travel.state.gov 
http://www.lib.berkeley.edu 
http://dev.sandbox.local 

난에 URL에 "샌드 박스"가없는 모든 URL을 변환 할 : 아래 목록을 감안할 때

다음 :

sed -r 's|http://(\S*)|href="/fetch\?domain=\1"|g' 

모든 URL을 예상대로 다시 포맷합니다.

"샌드 박스"가있는 행을 제외해야하는 것을 어떻게 수정합니까?

미리 도움 주셔서 감사합니다.

답변

2

제외하여 뜻 경우, "교체를하지 않는다"

sed -r '/sandbox/!s|http://(\S*)|href="/fetch\?domain=\1"|g' 

당신이 출력에서 ​​완전히 생략 '의미 경우 :

sed -r -e '/sandbox/d' -e 's|http://(\S*)|href="/fetch\?domain=\1"|g' 
1
sed -r 's|http://(\S*)|href="/fetch\?domain=\1"|g' | grep -v sandbox 
관련 문제