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