Usando sed
$ command | sed -n 's/.*text4://p'
"lkpird sdfd"
-n
informa ao sed para não imprimir a menos que explicitamente como para. s/.*text4://
informa ao sed para remover qualquer texto desde o início da linha até a ocorrência final de text4:
. Se tal linha for encontrada, o p
informará ao sed para imprimi-lo.
Usando grep -P
$ command | grep -oP '(?<=text4:).*'
"lkpird sdfd"
-o
diz ao grep para imprimir apenas a parte correspondente. (?<=text4:).*
corresponde a qualquer texto que segue text4:
, mas não inclui text4:
.
A opção -P
requer o GNU grep. Assim, ele não funcionará com o built-in grep
do busybox nem com o padrão grep
nos sistemas BSD / Mac OSX.
Usando o awk
A solução grep-awk original pode ser simplificada:
$ command | awk -F': ' '/text4: /{print $2}'
"lkpird sdfd"
Usando o awk (alternativo)
$ command | awk '/text4:/{sub(/.*text4:/, ""); print}'
"lkpird sdfd"
/text4:/
seleciona linhas que contêm text4:
. sub(/.*text4:/, "")
diz ao awk para remover todo o texto do início da linha para a última ocorrência de text4:
na linha. print
diz ao awk para imprimir essas linhas.