Кто-нибудь знает хороший графический интерфейс для MariaDB? [закрыто]

lynx -dump для преобразования HTML в обычный текст, а затем awk для переформатирования вывода, устанавливая разделитель полей на новую строку (\n) и разделитель записей на две или более новых строк (\n\n+).

Вызовы функции sub() в сценарии awk удаляют лишние пробелы перед печатью требуемого вывода.

$ lynx -dump ramp.html | 
    awk -v RS='\n\n' -F'\n' '/^[[:space:]]+/ {
        sub(/^ +/,"",$1);
        sub(/ +/," ",$2);
        print $1":"$2
    }'
Commodity Orgin: uerb45e001.material.com
Commodity Code & Dimension: 151151.15 Dim 90
Commodity Serial #: 2009081020
Client Name: Jack

Мне очень не нравится это делать, потому что никогда не стоит разбирать XML или HTML с помощью регулярных выражений. Это не работает. Даже если вам удастся взломать его так, чтобы казалось, что он работает, он чрезвычайно хрупок и БУДЕТ ломаться, как только HTML или XML достаточно изменится по сравнению с тем, что ищут ваши регулярные выражения. Настоящий парсер XML или HTML - это единственная вещь, которая может сделать эту работу должным образом.

Но, учитывая это, вот кое-что, использующее только sed и fmt, инструменты, которые должны быть доступны в любой unix-подобной системе:

$ sed -e '/]*>//g;
          s/^ *//;
          /^\(Commodity\|Client\)/ s/$/:/' ramp.html | 
      fmt |
      sed -e '/^[[:blank:]]*$/d'
Commodity Orgin: uerb45e001.material.com
Commodity Code & Dimension: 151151.15 Dim 90
Commodity Serial #: 2009081020
Client Name: Jack

Первый сценарий sed удаляет все строки кроме пустых строк и строк, содержащих тег

или
, затем удаляет все HTML-теги из входных данных, удаляет ведущие пробелы и добавляет : в конец строк имени поля. Вывод из sed затем передается в fmt для переформатирования строк, затем снова в sed для удаления пустых строк.

Это хак, и он гарантированно будет работать только на том образце входных данных, который вы предоставили. Все, что существенно отличается, скорее всего, приведет к поломке скрипта. Вот что происходит, когда вы используете регулярные выражения для разбора любого, кроме самого тривиального HTML или XML.

27
19.05.2014, 07:01
0 ответов

Теги

Похожие вопросы