LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Распарсить html, как и любой xml, при условии его корректности, на баше даже без sed,grep и awk проще простого:

#!/bin/bash

rdom () { local IFS=\> ; read -d \< T V ; }

while rdom; do
    case $T in
        /* | \?* )
            ;;
        *)
            V=`echo "$V" | xargs`
            [ "$V" != "" ] && {
                echo $T \"$V\"
            }
            ;;
    esac
done

Этот скрипт, если скормить ему html

./htmlparse.sh < example.html
сделает из запощенного образца вот такое:

td «妈,我可以看电视吗?»
td «mā, wǒ kěyǐ kàn diànshì ma?»
span style=«font-style:italic;» «Mum, can I watch TV?»

Это если нужны только теги в которые заключено некое содержимое. Если заменить

echo $T \"$V\"
на
echo $V
то выведет только содержимое тегов, что, как понимаю, и требуется.
妈,我可以看电视吗?
mā, wǒ kěyǐ kàn diànshì ma?
Mum, can I watch TV?

Исправление Stanson, :

Распарсить html, как и любой xml, при условии его корректности, на баше даже без sed,grep и awk проще простого:

#!/bin/bash

rdom () { local IFS=\> ; read -d \< T V ; }

while rdom; do
    case $T in
        /* | \?* )
            ;;
        *)
            V=`echo "$V" | xargs`
            [ "$V" != "" ] && {
                echo $T \"$V\"
            }
            ;;
    esac
done

Этот скрипт, если скормить ему html

./htmlparse.sh < example.html
сделает из запощенного образца вот такое:

td «妈,我可以看电视吗?»
td «mā, wǒ kěyǐ kàn diànshì ma?»
span style=«font-style:italic;» «Mum, can I watch TV?»

Это если нужны теги в которые заключено некое содержимое. Если заменить

echo $T \"$V\"
на
echo $V
то выведет только содержимое тегов, что, как понимаю, и требуется.
妈,我可以看电视吗?
mā, wǒ kěyǐ kàn diànshì ma?
Mum, can I watch TV?

Исходная версия Stanson, :

Распарсить html, как и любой xml, при условии его корректности, на баше проще простого:

#!/bin/bash

rdom () { local IFS=\> ; read -d \< T V ; }

while rdom; do
    case $T in
        /* | \?* )
            ;;
        *)
            V=`echo "$V" | xargs`
            [ "$V" != "" ] && {
                echo $T \"$V\"
            }
            ;;
    esac
done

Этот скрипт сделает из запощенного образца вот такое:

td «妈,我可以看电视吗?»
td «mā, wǒ kěyǐ kàn diànshì ma?»
span style=«font-style:italic;» «Mum, can I watch TV?»

Это если нужны теги в которые заключено некое содержимое. Если заменить

echo $T \"$V\"
на
echo $V
то выведет только содержимое тегов, что, как понимаю, и требуется.
妈,我可以看电视吗?
mā, wǒ kěyǐ kàn diànshì ma?
Mum, can I watch TV?