</div>
나는 "Index:"라는 단어가 포함된 거의 2500페이지에 달하는 매우 긴 문서를 변경하고 싶었지만 전혀 작동하지 않았습니다. 나는 sed
다음과 같은 다양한 방법을 시도했습니다.
sed '/s^[</div>]/Index:/g'
그러나 성공하지 못했습니다!
올바른 명령이 무엇인지 알려주세요.
예
</div>
</div>
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script>
<script>
$(document).ready(function () </div> {
app.init("pkgs.org", 101);
})
</div>
</script>
</body>
나는 그것을 원한다
Index:
Index:
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script>
<script>
$(document).ready(function () Index {
app.init("pkgs.org", 101);
})
Index:
</script>
</body>
답변1
대괄호를 제거하고 %
대신 구분 기호 /
로 사용하여 in 와의 혼동을 sed
막고 구분 기호를 s 앞의 뒤로 이동하고 캐럿을 제거하면 정규 표현식이 작동합니다./
</div>
sed 's%</div>%Index:%g'
답변2
세 가지 질문이 있습니다.
sed 명령의 구문이 잘못되었습니다. 검색 및 바꾸기 명령을 의미한다고 생각하므로 's'가 슬래시 앞에 와야 합니다.
sed 's/^[</div>]/Index:/g'
실제로 검색 문자열에 sed를 혼동시키는 슬래시('/') 문자가 포함되어 있습니다. 따라서 백슬래시를 사용하여 슬래시를 이스케이프 처리할 수 있습니다.
sed 's/^[<\/div>]/Index:/g'
또는 다른 문자를 구분 기호로 사용하세요.
sed 's|^[</div>]|Index:|g'
[</div>]
검색 시 대괄호( )를 사용하고 있는데 이는 원하는 결과가 아닙니다. 표현식은 대괄호 안의 모든 문자와 한 번만 일치합니다. 대괄호 없이 다음 명령을 시도해 보세요.sed 's|^</div>|Index:|g'