Se houver apenas um foo3
na linha
sed -n '/foo3=/{s/.*foo3=//;s/\S*=.*//;p}' file.txt
Suprima a impressão de qualquer linha ( -n
options), exceto a p
. Para linhas que consistem em foo3=
:
- Troque tudo antes de
foo3=
com ele incluído (.*foo3=
) para nada (//
). - Remova tudo o que começa com alguns símbolos (
*
) que não são de espaço (\S
) com=
. - Imprime o resedue após duas substituições (
p
).
Outro
sed -n 's/.*foo3=\([^=]*\)\s\+\S*=.*//p' file.txt
Troque a linha completa por padrão ( ) entre parênteses (
\(...\)
) que consistem em quaisquer símbolos exceto =
e lay após foo3=
e antes de alguns espaços ( *
) ( \s
). não-espaços com =
e imprime resedue de linhas onde tal substituição foi feita apenas.