파일에 대해 sed 문을 수행하는 데 도움이 필요하며 내가 가지고있는 것이 작동하지 않는 이유를 알 수 없습니다. 나는 철저하게 수색을했고, 각각의 결과는 비슷한 것이었지만, 왜 내가 내 결과를 기대하지 않는지는 알 수 없다.sed와 regex issue
나는 등
192.168.10.23:7020
192.168.10.23:4520
192.168.10.23:3320
같은 여러 옵션을 가진 파일을 가지고 있고 기본적으로 나는 192.168.10.23:XX21와 192.168.10.23:XX20를 교체해야합니다. 그 중에서도
는, 나는 시도했습니다
192.168.10.23:702021
192.168.10.23:452021
192.168.10.23:332021
도 :
192.168.10.23:702120
192.168.10.23:452120
192.168.10.23:332120
: 같은 결과를 얻을 수
sed 's/\:\([0-9]\)\{2\}/\:&21/g'
같은 결과를 얻을 수
sed 's/\:\([0-9]\)\{2\}20/\:&21/g' $file
다른 시도는 전혀 변경되지 않거나 크게 다른 결과를 낳습니다. 나는 너무 가까이서, 아직까지는 그렇게 느낀다. 어떤 도움을 많이 주시면 감사하겠습니다!
콜론은 정규 표현식에있는 메타 문자가 아닌, 그래서 당신이 그것을 탈출 할 필요가 없습니다. 아래의 해답은 솔루션을 다룹니다. 당신은 가깝지만,'&'는 정규 표현식과 일치하는 문자열 전체와 일치합니다; '\ 1'은 첫 번째'\ (... \)'시퀀스 내에서 일치하는 첫 부분을 나타냅니다. –
고마워요! 내 주요 문제 "&"대 "\ 1"이라고 생각합니다. 확실히 sed man 페이지와 다른 튜토리얼을 더 공부할 필요가 있지만 이것은 나를 묶어 두는 데 확실히 도움이되었습니다. –