anonymous
написал 26 января 2005 года в 21:52 (998 просмотров)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
Срочно нужен скрипт для Линукс. который делает следующее: Есть html файл из него надо повырезать куски кода содержащиеся между словами <script script="» type=«text/javascript»>
. Кусков может быть несколько надо все их вырезать включая сами <SCRIPT и SCRIPT>. Помогите пожалуйста или подскажите как это сделать. Может с помощью Sed или awk. или надо посимвольно проверять весь файл на совпадение со <SCRIPT?
</script>
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

Для этой задачи вполне годиться awk, хотя любители perl скажут фи.
используй regex (man 7 regex), и не забудь строки склеить
$ awk — 'BEGIN {RS=«\x00»}; {gsub (//,"»); print}' <имя_файла>
этот скрипт вырезает весь текст находящийся между самым первым <script script="» type=«text/javascript»>
. Нужно чтоб вырезался текст между каждой парой <SCRIPT SCRIPT>. Надо небось заменить /<SCRIPT.*SCRIPT>/,"» на другое рег. выражение, но я не знаю на какое.
есть такая простая констр.
awk '/<SCRIPT/,/SCRIPT>/'
которая наоборот выводит на stdout пары <SCRIPT SCRIPT> с текстом между ними. Как сделать чтоб он выводил весь файл кроме этого(того что она щас выводит)? Люди не подскажите? Может кто знает.
</script>
ну, не то, чтобы это было тривиально.
некоторая сложность в этом всё же есть.
правда, действительно, удобнее это делать на perl, как и говорилось
удалять теги (для наглядности это STYLE и SCRIPT):
cat file.html | perl -e 'while($l=){$f.=$l;}; $f=~ s~<(style|script)>(\n|.)*?</\1>~~ig; print $f;'наоборот, оставлять:
cat file.html | perl -e 'while($l=){$f.=$l;}; $f=~ s~(<(style|script)>(\n|.)*?</\2>)~$o.="$1\n"~eig; print $o;'