Извлечение числовых значений из определенного блока
на веб-странице

awk '!a[$1]{b[++p]=$1; a[$1]=$2;next} {a[$1]=sprintf("%s%s%s", a[$1], OFS, $2)} END {for (i=1; i<=p; i++) print b[i], a[b[i]]}' file

на основе этого поста как группировать строки в соответствии с первым полем/элементом

0
21.11.2020, 20:45
1 ответ
curl http://webpage.example.com/status             |\
    grep -oP '<div class="stats-values">.*?</div>' |\
    grep -oP '(?<=<span>)\[.*?\](?=</span>)'

сначала grepизвлечь связанный блок <div...></div>;
второй grepизвлекает числовые части во внутренних блоках <span>[...]</span>.

(?<=pattern)является PCRE-позитивным -расширением просмотра назад для GNU grepмы разрешили использовать его с переключателем -P.
(?=pattern)является расширением положительного просмотра PCRE.

, а это (?<=<span>)\[.*?\](?=</span>)означает, что наш паттерн [nuerical]точно находится внутри этих двух паттернов; и они исключаются из вывода и возвращают только шаблон внутри того, который соответствует и найден.

.*жадное совпадение (самое длинное совпадение ); .*?не является -жадным (кратчайшим возможным совпадением)

0
18.03.2021, 22:48

Теги

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