Primeiro, um aviso obrigatório. Geralmente é uma idéia muito ruim para tentar analisar HTML com ferramentas simples como expressões regulares. Dito isto, neste caso, se você tem certeza de que o que você quer sempre será a segunda palavra em uma linha que começa com Hello , você pode usar um dos seguintes:
-
GNU
grepgrep -oP '^Hello\s+\K\S+'Isso é
grepcom expressões regulares compatíveis com Perl (-P) e-opara informar que apenas imprime a parte correspondente da linha. A regex em si procuraHello, depois um ou mais caracteres de espaço em branco (\s+) e, em seguida, descarta-o (\K) e, em seguida, 1 ou mais caracteres não brancos (\S+). -
awk
awk '$1=="Hello"{print $2}' fileawkdividirá automaticamente suas linhas de entrada no espaço em branco e o primeiro campo será$1, o segundo$2etc. Portanto, esse script imprimirá o segundo campo se o primeiro forHello. Observe que não corresponderá aHelooo. Se você quiser que todas as linhas cujos primeiros caracteres sejamHelloe não necessariamente somente aquelas cuja primeira palavra seja exatamenteHello, use isso:awk '/^Hello/{print $2}' file
Com ambas as abordagens, para salvar a saída em uma variável, use substituição de comando :
myvariable=$(grep -oP '^Hello\s+\K\S+')
myvariable=$(awk '/^Hello/{print $2}' file)