У меня есть две веб-страницы, одна страница была создана вручную, другая была опубликована с визуальной студией 2010 (.aspx). Я хочу изменить содержимое этих файлов, заменив кучу тегов скриптов одним тегом скрипта. Для достижения этой цели я просто запускаю некоторый код Perl из командного файла. Вот код Perl и HTML до и после подстановки:Перенос подстановки с многострочным
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>
Everything отлично работает для созданного вручную файла, а сгенерированный файл не обновляется, если все строки не собраны в один. Я предполагаю, что проблема исходит от строк, но я не могу понять, почему она работает только для первого файла, так как код точно такой же.
Спасибо, это работает! Не могли бы вы объяснить, почему моя версия работает для одного из двух файлов? – leaf
@wared, ваш файл, созданный вручную, может хранить разрывы строк в другом формате, который Perl не распознает. – 2013-02-12 10:54:52
Хорошо, спасибо большое! – leaf