이것은 sed
명령입니다. 00
to 의 세 번째 항목을 바꾸고 싶습니다 .11
echo "0000000000000000" | sed -e 's/00/11/3'
출력은 다음과 같습니다
0000110000000000
하지만 결과는 다음과 같습니다.
0011000000000000
첫 등장 00
:
{00}00000000000000
두번째:
0{00}0000000000000
세 번째:
00{00}000000000000
무슨 일인지 설명해 줄 수 있는 사람이 있나요?
답변1
sed
정규식 패턴이 일치하면 다음 검색이 즉시 시작됩니다 .뒤쪽에패턴이 일치했습니다... 원하는 것을 수행하려면 perl
정규 표현식과 같은 것이 필요합니다.너비가 0인 Lookahead 및 LookBehind 어설션.
귀하의 경우 하위 패턴(2위 0
)는 이후에 존재합니다.처음 0
전반적인 패턴. 이것하위 모드너비가 0인 것으로 처리되므로 전체 패턴이 일치하면 검색이 즉시 다음으로 시작됩니다.처음패턴의 일부, 즉 첫 번째 0 이후 0
.