найди 2 одинаковых слова в одной строке и выбери только цифры
У меня есть 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
Ответы (2 шт):
здесь можно и одним awk обойтись указав необходимые разделители:
awk -F'testIT: C|, | \\(' '/testIT:/{print $2"\n"$4"\n"$6}' |awk 'NF!=0'
Попробуйте так
grep -oP '(?<=testIT: C)[0-9]{6}'
Проверяем позитивным просмотром назад, что перед 6 цифрами есть текст "testIT: C"
Параметры программы:
-o - вывод только попавших под захват данных
-P - включение расширенной библиотеки регулярных выражений
Регулярное выражение:
(?<=...) - позитивный просмотр назад, группа проверяет данные, но не выполняет захват
[0-9] - цифры в диапазоне от 0 до 9
{6} - квантификатор, 6 совпадений
Если количество цифр не известно, то можно установить квантификатор + - одно и более совпадений, так же можно регулировать минимальное/максимальное количество совпадений {3,} - что означает 3 и более символа предыдущего шаблона
или {1,6} от одного до шести символов соответствующих предыдущему шаблону.