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.