2012-03-15 2 views
0

번을 사용하여 저장하려고 시도했습니다. 정상 문자열로 작동하지만 슬래시가있는 URL은 사용할 수 없습니다.sed가 파일의 URL을 바꾸고

/var/www/vhosts/sandbox.modernactivity.co.uk/을 (를) 아무것도 바꾸지 않으려 고 시도했습니다.

sed 's%var%%' /Volumes/WEB_BACKUP/backups/ukfast/scripts/INCLUDE_list.txt 

는 //www/vhosts/sandbox.modernactivity.co.uk/restofurl/을 뱉어 원래는 /var/www/vhosts/sandbox.modernactivity.co.uk/restofurl/했다. 그냥 슬래시를 인식 할 수 없습니다.

파일을 업데이트하지 않는 것 같습니까?

팁 환영합니다!

+0

매주 여기에 질문을받습니다. 답을 찾기 위해 행운을 빈다. – shellter

답변

1

원하는 내용은 무엇입니까?

sed 's#/var.*\.co\.uk/##' file 

테스트 : 당신이 나오지과 원본 파일을 변경하려는 경우

kent$ echo "foo/foo/var/www/vhosts/sandbox.modernactivity.co.uk/bar/bar"|sed 's#/var.*\.co\.uk/##' 
foo/foobar/bar 

, -i 옵션을 추가 할 수 있습니다. 같은 :

sed -i 's/foo/bar/' file 
+0

yeh하지만 나는 단지 sed의 #/var/www/vhosts/## '가 삭제되도록 원했지만 지금은 작동합니다. 감사! 내가 -i를 사용하면 오류가 발생하므로 동일한 파일을 사용할 수없는 것처럼 보입니다. 그러나 old.txt> new.txt는 새 파일에 결과를 저장합니다. 도와 줘서 고마워? % 또는 #의 정의는 무엇입니까? 그것이 나를 혼란스럽게 만든 것 같아요 ... – v3nt

+0

-i는 변경 (in-place backup)이 선택되었음을 의미합니다. 작동해야합니다. sed의 매뉴얼 페이지를 확인하십시오. # 's'명령을위한 것입니다/s .. /../ 's # .. # .. #. 텍스트에 "/ (슬래시)"가 있으므로 모든 슬래시를 벗어나고 싶지 않습니다. – Kent

+0

아 - 죄송합니다. 이 변수와 함께 작동하지 않는? DIR =/var/www/vhosts /, sed 's # $ DIR ##'. 다른 구분 기호를 사용해야합니까? – v3nt

2

보십시오 : 당신이 사용하는 Mac에서 작업하는 경우

find . -name "yourfile.txt" -print | xargs sed -i "" 's/\/var\/www\/.*\.co\.uk//g' 

사용 \ '/'

을 탈출 그렇지 리눅스에

-i "" 단지 쓰기 -i

+0

감사합니다. -i 뒤에 맥이 필요합니다. " – v3nt

관련 문제