найди 2 одинаковых слова в одной строке и выбери только цифры

Рейтинг: 0Ответов: 2Опубликовано: 16.03.2023

У меня есть html файл с номерами. Мне нужно выбрать только цифры. Как получить только номера в виде

260573
261374
259249 

<p class="list-item">
    <span style="margin-left: 20px" class="padding"></span>
    <span class="icon left drop-down-icon" onclick="toggle(this, '2A4FFFC5-DA6B-4B3B-A16D-5083449D1E13')"></span>
    testIT: C260573, testIT: C261374, testIT: C259249 (2m30s)
    <span class="icon paperclip-icon" style="display: none"></span>
  </p>

Я сделал

sed -n -e 's/^.*testIT: C//p' | sed -r 's/ .+//'

но я получаю только последний 259249

Ответы

▲ 0Принят

здесь можно и одним awk обойтись указав необходимые разделители:

awk -F'testIT: C|, | \\(' '/testIT:/{print $2"\n"$4"\n"$6}' |awk 'NF!=0'
▲ 2

Попробуйте так

grep -oP '(?<=testIT: C)[0-9]{6}'

Проверяем позитивным просмотром назад, что перед 6 цифрами есть текст "testIT: C" Параметры программы:
-o - вывод только попавших под захват данных
-P - включение расширенной библиотеки регулярных выражений

Регулярное выражение:
(?<=...) - позитивный просмотр назад, группа проверяет данные, но не выполняет захват
[0-9] - цифры в диапазоне от 0 до 9
{6} - квантификатор, 6 совпадений

Если количество цифр не известно, то можно установить квантификатор + - одно и более совпадений, так же можно регулировать минимальное/максимальное количество совпадений {3,} - что означает 3 и более символа предыдущего шаблона
или {1,6} от одного до шести символов соответствующих предыдущему шаблону.