[bash] sed가 모든 항목을 대체하지 않는 이유는 무엇입니까?

이 코드를 bash에서 실행하면 :

echo dog dog dos | sed -r 's:dog:log:'

출력을 제공합니다.

log dog dos

모든 개를 대체하려면 어떻게해야합니까?



답변

gsed 가 패턴 버퍼 내용의 전역 대체를 수행하도록 수정자를 추가해야합니다 .

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 sedhttp://www.gnu.org/software/sed/manual/에 있습니다 .


답변

당신은 넣어 가지고 g끝에서, 그것은 “글로벌”의 약자 :

echo dog dog dos | sed -r 's:dog:log:g'
                                     ^


답변