Получить все числа в начале строки в выводе из grep

Привет, я пишу загрузчик новостей из командной строки для калибра (calibre-ebooks.com), скрипт получает идентификатор книги из БД калибра, используя эту команду

 calibredb list --with-library '/mediacenter/media/Książki' | grep --line buffered "Benchmark.pl" | cut -c 1

но это работает только для идентификатора 1-9

пробовал искать в интернете и экспериментировать сам, но ничего не могу найти

если вам интересно, как выглядит результат от calibredb:

uniqueid name         date                 author
10       Benchmark.pl [pią, 24 mar 2017]   calibre

(мне нужен этот первый уникальный идентификатор)

1 ответ

Решение

Я подозреваю, что вам будет лучше с awk если вы хотите найти строки, которые начинаются с цифр и содержат "Benchmark":

calibredb ... | awk '/^[0-9]+/ && /Benchmark/ {print $1}'

Или, если вам нравится grep:

calibredb ... | grep "Benchmark" | grep -Eo "^[0-9]+"
Другие вопросы по тегам