이 코드를 bash에서 실행하면 :
echo dog dog dos | sed -r 's:dog:log:'
출력을 제공합니다.
log dog dos
모든 개를 대체하려면 어떻게해야합니까?
이 코드를 bash에서 실행하면 :
echo dog dog dos | sed -r 's:dog:log:'
출력을 제공합니다.
log dog dos
모든 개를 대체하려면 어떻게해야합니까?
답변:
g
sed 가 패턴 버퍼 내용의 전역 대체를 수행하도록 수정자를 추가해야합니다 .
echo dog dog dos | sed -e 's:dog:log:g'
sed에 대한 환상적인 문서를 보려면 http://www.grymoire.com/Unix/Sed.html을 확인 하십시오 . 이 전역 플래그는 http://www.grymoire.com/Unix/Sed.html#uh-6에 설명되어 있습니다.
공식 문서 GNU sed
는 http://www.gnu.org/software/sed/manual/에 있습니다 .
sed -E 's,foo,bar,g'
글로벌 작업을 수행하지 않습니다. 그것을 변경하면 sed -E -e 's,foo,bar,g'
작동합니다.
g
글로벌 교체의 깃발을, 당신은 필요가 없습니다-r
여기도 옵션을 선택합니다.