2017-11-26 16 views
0
내가

사용 "1/2"와 "1/1"을 대체 대량하려는 나오지

을 시도

디렉토리의 모든 파일에 "2"와 "1/1"를 대체 할

find . -type f -exec sed -i 's/1/1/1/2/g' {} + 

와 내가 뭘 잘못

sed: -e expression #1, char 6: unknown option to `s' 

있어? "/"가 포함 된 패턴으로 교체해야하는 경우 어떻게 사용합니까? 사전

+0

https://www.gnu.org/software/sed/manual/sed.html#The-_0022s_0022-Command – melpomene

+0

'sed -e 's/1 \/1/1 \/2/g'중 하나 (슬래시를 인용) 또는'sed -e '@ 1/1 @ 1/2 @ g''(다른 구분 기호 사용) 중에서 더 나은 방법을 선택하십시오. – AlexP

답변

0

에서

감사는 대체 (s) 명령은 앞으로을 구분 슬래시가 있습니다. 그 형식은 다음과 같습니다

s/pattern/replacement/flag 

여기 진짜 문제는 당신이 당신의 패턴에 나타나는 슬래시를 해결 할 방법이다. 패턴에서 슬래시를 이스케이프 처리 할 수 ​​있습니다. 더티하는 방법입니다. 당신이

find . -type f -exec sed -i 's#1/1#1/2#g' {} \; 

같은 일을 할 수 있도록

다행히 sed 여기에 당신이 당신의 대체에 백 슬래시의 유입을 방지 할 수 있습니다 s의 DELIM로 #의 사용을주의 s 명령에 대해 서로 다른 delims 수 있습니다.

+0

감사합니다. 업데이트를 게시하고 게시합니다. –