grep comando para extrair dados de um arquivo

1

Eu tenho um arquivo com essa linha:

$n22(s:Tstring) =   "252";

Estou tentando gravar um comando shell para liberar o arquivo e retornar apenas 252. Isso é o que eu tenho até agora:

grep -o '$n22(s:Tstring).*;' /etc/test/testfile.cfg
$n22(s:Tstring) =   "252";

Como você pode ver, ele encontra a linha, mas retorna tudo. Eu só quero 252. Você pode me dizer onde estou indo errado pls?

Obrigado

    
por Happydevdays 18.05.2016 / 17:19

1 resposta

2

Precisa ser grep ? Você poderia fazer isso com awk como:

awk -F\" '/\$n22\(s:Tstring\)/ {print $2}'

com o GNU grep, pelo menos você pode usar regex no estilo do perl e fazê-lo da seguinte forma:

 grep -Po '\$n22\(s:Tstring\)[^"]+"\K[^"]+'

o \K significa não incluir tudo o que correspondeu àquele ponto como parte da correspondência da opção -o .

    
por 18.05.2016 / 17:26

Tags