Извлеките несколько строка строки из файла HTML с помощью определенных тегов

с перл:

perl -le 'map { $sum += -s } @ARGV; print $sum' -- *.pdf

Размер всех не скрытых PDF-файлов в текущем каталоге.

1
05.05.2014, 17:10
3 ответа

Regex на самом деле не способен полностью разобрать html.

Существует утилита командной строки под названием [117721]xidel[117722], которая позволяет использовать селекторы XPath или CSS для извлечения нужных битов.

Нечто подобное удовлетворит ваше заявленное требование:

# build list of files; note, won't work when filename contains a space or colon
files=""
for i in `seq 30 99`; do
    files="$files my_log-bin.$i"
done

scp $files root@192.168.103.66:/backup/
Но обратите внимание, что это вернет больше, чем требуется, так как у вас есть один незакрытый [117723]

2
27.01.2020, 23:28
[117418] Можно попробовать что-нибудь вроде приведенного ниже.

Однако, не рекомендуется извлекать с помощью заголовков HTML. Пожалуйста, обратитесь к [117713] здесь [117714], чтобы узнать, почему не следует разбирать HTML-страницы. Я бы посоветовал вам использовать [117715]curl[117716] и [117717]w3m[117718] для удаления заголовков HTML, после чего парсинг станет немного проще. [117421]

0
27.01.2020, 23:28
[117430]Использовать HTMLParser для таких действий:

$ for i in `seq 1 100` ; do touch $i ; done
$ ls
1    13  18  22  27  31  36  40  45  5   54  59  63  68  72  77  81  86  90  95
10   14  19  23  28  32  37  41  46  50  55  6   64  69  73  78  82  87  91  96
100  15  2   24  29  33  38  42  47  51  56  60  65  7   74  79  83  88  92  97
11   16  20  25  3   34  39  43  48  52  57  61  66  70  75  8   84  89  93  98
12   17  21  26  30  35  4   44  49  53  58  62  67  71  76  80  85  9   94  99
$ echo [0-9]
1 2 3 4 5 6 7 8 9
$ echo [30-99]
1 2 3 4 5 6 7 8 9

Запустите его:

$ touch a b c d e f g h i j k l m n o p q r s t u v w x y z
$ echo [f-l]
f g h i j k l

1
27.01.2020, 23:28

Теги

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