왼쪽 괄호를 sed로 바꾸는 방법?


27

(파일에서 일부 문자 로 바꿔야하는데 할 수 없습니다. \(나오지도에서 그룹화에 사용하고 내가 사용하면됩니다 \\(나오지와 함께, 그것은으로 처리 \(하지 만 문자 (. 그것은 까다로운 경우처럼 보입니다.


7
제안 : 문자를 다른 문자로 tr바꾸려면 다음을 사용 하십시오 echo 'Hello (world)' | tr '()' '[]'. 출력 Hello [world]합니다.
Lekensteyn

답변:


45

sed 없이 -r (확장 정규 표현식) sed를 사용하면 그룹화 가 \(\)아닌 사용 방식 대로 작동합니다 ().

sed -e 's/(/X/g'

예를 들어

$ echo "foo (bar) (baz)" | sed -e 's/(/X/g'
foo Xbar) Xbaz)

사용하려는 경우, -r당신은 넣을 수 있습니다 (내부 [], 예를 들어,

sed -re 's/[(]/X/g'

으로 Lekensteyn 비고 사용하여 tr당신이 단순히 교체로 더 적합 할 수 있습니다 당신은 정규 표현식의 모든 기능이 필요하지 않다.


TL; DR : 탈출하지 마십시오.
qwertzguy 2016

필자는 PHP에서 사용되지 않는 "split"을 "explode"함수로 대체하여 "split"앞에 공백이 있고 "(")가 grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'
오는지 확인했습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.