두 개의 웹 페이지가 있습니다. 하나의 페이지가 손으로 만들어졌고 다른 하나는 Visual Studio 2010 (.aspx)과 함께 게시되었습니다. 이 파일의 내용을 수정하여 여러 스크립트 태그를 단일 스크립트 태그로 대체하려고합니다. 이 목표를 달성하기 위해 배치 파일에서 일부 Perl 코드를 실행하기 만하면됩니다.여러 줄로 Perl을 대체 할 수 없습니다.
펄 일괄 :
perl -pi.backup -e "s/<!--\s*<pack>\s*-->.*?<!--\s*<\/pack>\s*-->/<script src=\"pack.js\"><\/script>/s" file.aspx
HTML 입력 :
<!-- <pack> -->
<script src="file1.js" type="text/javascript"></script>
<script src="file2.js" type="text/javascript"></script>
<!-- </pack> -->
HTML 출력 :
<script src="pack.js"></script>
모두 여기 전 치환 후 펄 코드 및 HTML은 생성 된 파일은 모든 행을 하나로 모으지 않으면 업데이트되지 않지만 손으로 만든 파일에는 잘 작동합니다. 문제는 linebreaks에서 비롯된 것 같지만 코드가 정확히 동일하므로 첫 번째 파일에서만 작동하는 이유를 알 수 없습니다.
감사합니다. 작동합니다! 왜 내 버전이 두 파일 중 하나에 대해 작동하는지 설명해 주시겠습니까? – leaf
@wared에서 손으로 만든 파일은 Perl이 인식하지 못하는 다른 형식의 줄 바꿈을 저장할 수 있습니다. –
감사합니다. – leaf