
msoliver
(usa Debian)
Enviado em 10/08/2016 - 19:52h
ssaraujo escreveu:
Boa tarde,
Tem um comando que já uso a algum tempo onde busco no log as linhas que iniciam com um determinado termo e jogo em outro arquivo: cat ${logfile} | sed -e /"^OK\:"/\!d > "${ok_tmp_file}"
Agora, em um novo projeto, preciso trocar o termo de busca, a palavra 'OK' por uma variável, pois serão criados arquivos de acordo com termos de uma lista.
Tentei de várias maneiras, mas só consegui erros de execução e o comando buscar o nome da variável ao invés do valor representado, e como resultado tenho arquivos vazios. cat ${logfile} | sed -e /'^${CONTR}\:'/\!d > "${ok_tmp_file}"
Esgotei minhas tentativas e já não consigo novos resultados em buscas no google. Preciso de ajuda.
Att,
Simone
Boa noite Simone.
Para usar variáveis no sed, vc deve:
01 - Usar aspas duplas no comando inteiro, exemplo:
VAR="OK"
sed -n "/^$VAR/p" $logfile > "$ok_tmp_file"
Ou
2 - Usar aspas simples no comando e na variável, exemplo:
sed -n '/^'$VAR'/p' $logfile > "$ok_tmp_file"
Ps.:
Note que não usei o "cat" para ler o arquivo e depois direcionar ("pipe") para o sed, não é necessário . . .
Dica: Ótimo material.
http://aurelio.net/sed/
Att.:
Marcelo Oliver