Получить все числа в начале строки в выводе из 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]+"