Подстрока grep между кавычками

Допустим, у меня есть строка вроде этого:

title="2010-09-11 11:22:45Z" 

Как я могу grep самой даты и игнорировать цитаты / название / Z ?

Файл может содержать больше строк, таких как:

 randomstring title="2010-09-11 11:22:45Z" title="disregard me" 

Поэтому я хочу только grep timestamps с помощью одной команды grep .

  • Как извлечь данные из файла и построить имя файла из одного из значений
  • Добавление ведущих символов перед строкой с использованием printf или echo
  • Разбор JSON на оболочке
  • Bash: Родной способ избавиться от цитаты вокруг каждого элемента массива
  • В `sed` как я могу поместить один символ« & »между символами в строке?
  • Может ли bash развернуть цитированную и / или экранированную строковую переменную в слова?
  • Как я могу получить доступ к столбцу строки из строки?
  • Есть ли простой способ получить массив всех аргументов, которые не начинаются с дефиса?
  • 4 Solutions collect form web for “Подстрока grep между кавычками”

    С помощью GNU grep вы можете:

     $ echo 'title="2010-09-11 11:22:45Z"' | grep -oP 'title="\K[^"]+' 2010-09-11 11:22:45Z 
     grep -oP '[0-9-]{10} [0-9:]{8}' filename 

    Это должно работать только на GNU-версии grep :

     <file.html grep -oP "(?<=title\=\")\d+-\d+-\d+" 

    Пример здесь regex101.

    Если вход будет в этом формате, то только ниже команда легко решает вашу проблему

     echo "title=\"2010-09-11 11:22:45Z\"| cut -d '"' -f2 
    Linux и Unix - лучшая ОС в мире.