$
sed = tst2.html | sed -r 'N;
:l
s/^([0-9]+)\n(.*)([^0-9])<(.*)/\1\n\2\3|\1<\4/
t l
s/^([0-9]+)\n</|\1</
s/^[0-9]+\n//' | sed -rnf htmlpre.sed | sed -r '
s/\|[0-9]+$/&/
T l3
N
s/\n//
:l3
s/([^<]*)\|([0-9]+)</\2\t\1</
s/\|[0-9]+</</g'
Код: Выделить всё
#!/bin/sed
# Стопроцентную гарантию даёт только морг :-)
# version 1.00
H
$ {
x
b l
}
/<|>/ {
g
s/<.*>/ /
T
s/.*(<|$)/\1/
x
s/<[^>]*$// # удаление хвоста
b l
}
b
:l
# вывод строки
s/\s+/ /g
s/ ?([<>]) ?/\1/g
s/<[^>]*/\n&/g
s/^\s*(.*) ?$/\1/
p