shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Usando AWK


From: IGOR
Subject: Usando AWK
Date: Tue, 31 Jan 2006 11:53:57 -0300

Gostaria de passar para o awk váriaveis ao invés de fixas, como está as 
váriaveis "len" e "string" no script awk.
Exemplo, ele vai listar os arquivos no diretórios e pelo nome do arquivo pego a 
string e por ela defino o tamanho e os caracteres de pesquisa como segue o case 
abaixo:

case $1 in
1pop) TAM=1411 ; PAT="01BR             ICBR           ";;
*)   echo "Valor invalido" ;;
esac

Minha dúvida, como passo os valores de "TAM" para "len" no awk e os valores de 
"PAT" para "string" no awk, pois no awk elas estão fixas e estão funcionando.

=======================
awk 'BEGIN {len = 1411}
{string = "01BR             ICBR           "}

{
if ((length($0) < len) || (substr($0, 1, 32) != string)) {
printf "Linha %s é inválida\n", $0
}
}' arq.txt



De:address@hidden

Para:"shell-script" address@hidden

Cópia:"shell-script" address@hidden

Data:Tue, 31 Jan 2006 10:04:16 -0300

Assunto:Re: [shell-script] Usando AWK

> Valeu por ajudar,
> mas ao executar com sh -x está dando esse errro:
> 
> sh -x Awk.sh arq.txt
> + BEGIN {
> Awk.sh: BEGIN: not found
> + len = 20
> Awk.sh: len: not found
> + string = 12312312312312312312312312312312
> Awk.sh: string: not found
> Awk.sh: syntax error at line 6: `}' unexpected
> 
> Não consegui descobrir o erro, pode me ajudar ?
> 
> Obrigado
> 
> 
> De:address@hidden
> 
> Para:address@hidden
> 
> Cópia:
> 
> Data:Tue, 31 Jan 2006 10:23:15 -0200
> 
> Assunto:Re: [shell-script] Usando AWK
> 
> > On 1/31/06, IGOR wrote:
> > > Como faço isso em awk:
> > > - Preciso validar linha a linha do arquivo e se a linha for menor que um 
> > > tamanho definido
> > > em uma váriavel, da a mensagem que a linha do arquivo está incompleta e 
> > > ainda joga a
> > > saida para um log.
> > >
> > > - E também preciso validar os primeiros 32 caracteres de cada linha do 
> > > arquivo. Que
> > > também, esses caracteres vão estar definidos em uma váriavel.
> > > -Se não estiver ok, da a mensagem que os caracteres são inválidos e ainda 
> > > joga no log.
> > 
> > Igor, creio que seu script vai ficar parecido com isso:
> > 
> > #!/usr/bin/awk -f
> > BEGIN {
> > len = 20
> > string = "12312312312312312312312312312312"
> > }
> > 
> > {
> > if ((length($0) < len) && (substr($0, 0, 33) != string)) {
> > printf "Linha %s é inválida\n", $0
> > }
> > }
> > 
> > Para executá-lo: ./script.awk arquivo.txt
> > 
> > --
> > Gentil de Bortoli Júnior
> > Chave GPG: http://gentil.bortoli.com.br/gpg
> > 
> > "There Is No Gene For The Human Spirit"
> > 
> > 
> > ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação, como 
> > perl, C etc. Quem insistir em não seguir esta regra será moderado sem 
> > prévio aviso.
> > ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em 
> > http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> > 
> > 
> > Links do Yahoo! Grupos
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 
> Igor Rodrigues Damiano
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
> 
> Links do Yahoo! Grupos
> 
> 
> 
> 
> 
> 
> 
> 




Igor Rodrigues Damiano


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]