[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]