Pontos:
-
+ é um token ERE (Extended Regular Expression), que indica um ou mais token precedente, pode ser usado se a opção -E de grep for usada ou com escape (\+ ) no caso de BRE (Basic Regex), ou seja, apenas% regulargrep
-
A classe de caracteres [a-z,0-9,\"] corresponderia a qualquer um dos caracteres entre [a-z] , [0-9] , , ou " . Isso pode não ser o que você quer
-
Normalmente, grep exibe toda a linha, se você deseja exibir apenas a parte correspondente, use a opção -o de grep
Com base no seu exemplo, você pode fazer:
grep -E '\bdata=[a-z0-9"]+\b' file
-
-E ativa o ERE
-
\b corresponde a arestas de string, largura zero
-
data= corresponde a data= literalmente
-
[a-z0-9"] corresponde a qualquer caractere de [a-z] , [0-9] e " . + corresponde ao token anterior uma ou mais vezes
Seu padrão atual até você corrige, sem \b , isso corresponderia a falsos positivos como foo fdata=2322ab , data=12AB e assim por diante.
Exemplo:
% grep -oE '\bdata=[a-z0-9"]+\b' <<<'<div class="node_thumbnail" data-type="file" name="GOPR0036.MP4_frame000001.jpg" data="813334c25191468c9f1c57afc99fde60" aid="133948" rel="/Files/ToolTipView?fileId=813334c25191468c9f1c57afc99fde60&pageNo=1&NoCache=101016083044" rev="topMiddle"'
data="813334c25191468c9f1c57afc99fde60