AWK - Variáveis - Dúvidas [RESOLVIDO]

1. AWK - Variáveis - Dúvidas [RESOLVIDO]

Diego Tavares
diegoneto

(usa Outra)

Enviado em 03/02/2012 - 10:40h

Saudações a todos,

Estou elaborando um script em AWK e tenho algumas dúvidas:

1) Preciso armazenar 32 caracteres em uma variável. O início desses 32 caracteres é na segunda coluna. Hj o texto q eu preciso armazenar é "7PJF/CAAZA 107 2267/MQVAB R1A12 " (sem aspas) e o q eu tenho é:

SUIDNome=$2

Eu poderia colocar as colunas seguintes, mas eu ñ posso garantir q ele sempre terá essa estrutura de elementos. Pode ser q amanhã apareça mais um elemento dentro desses 32 caracteres e desande tudo.

2) Vou executar esse script do AWK a partir de outro script e vou precisar levar algumas variáveis para dentro do AWK. Tem alguma forma de fazer isso??

Abraços,
Diego Tavares


  


2. Re: AWK - Variáveis - Dúvidas [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 03/02/2012 - 11:28h

Copie seu script aqui, assim como a saída que vc deseja.


3. Re: AWK - Variáveis - Dúvidas [RESOLVIDO]

Diego Tavares
diegoneto

(usa Outra)

Enviado em 03/02/2012 - 11:39h

Cara, eu já consegui a primeira parte que era pegar uma quantidade especificada de caracteres:

Código:

BlockNome = $1 # Armazena o nome do bloco

FIELDWIDTHS="9 32 5 7" # Estabelece a separação das colunas no AWK. Primeiro elemento 9 caracteres, segundo elemento 32 caracteres, etc.
$0=$0 # AWK precisa definir definir primeiro os separadores e depois ele começa a ler as linhas
# Definindo o separador no meio do código, precisamos pedir que ele releia a entrada para reordenar os separadores
# Isso foi feito para que possamos levar a informação de 32 caracteres do SUID.
SUIDNome = $2 # Armazena o nome do SUID

FS = " " # Reestabelece a separação dos elementos.

Fim do código

O que eu precisaria agora é levar uma variável de dentro de um script para dentro do awk. Acredito q seria algo utilizando -v, mas não faço idéia p/onde seguir e até agora ñ achei nada semelhante.


4. Re: AWK - Variáveis - Dúvidas [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 03/02/2012 - 12:28h

Eu tenho um script do qual tb envio variável para o awk e vai normalmente, olha a estrutura que usei:

APPLICATION=`awk -F";" '/^'$V_PATH1'/ {print $2}' /usr/application/fields | awk -F"/" '{print $NF}'`


5. Re: AWK - Variáveis - Dúvidas [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 06/02/2012 - 18:26h

cara o cut parece mais adequado pra sua necessidade ... mas de qq forma segue como se usa o -v


teste="OK"; echo "seu teste foi " | awk -v t="$teste" '{ print $0 t }'


6. Re: AWK - Variáveis - Dúvidas [RESOLVIDO]

Diego Tavares
diegoneto

(usa Outra)

Enviado em 07/02/2012 - 11:47h

Galera, valeu pela ajuda, mas resolvi da seguinte forma:

Chamada do script AWK:

Script/ConversaoArquivos/ConverterSYRIP_AWK.sh -v PrimeiraLin=$PrimeiraLin -v UltimaLin=$UltimaLin -v Data=$Data -v OSS_Nome=$OSS_Nome -v MSC_Nome=$MSC_Nome $ArqResultTempMSC >> $PstResultSQL$OSS_Nome"_SYRIP_"$DataTexto".txt"

Alteração da quantidade de caracteres nas colunas:

FIELDWIDTHS="7 2 32 5 7" # Estabelece a separação das colunas no AWK. Primeiro elemento 9 caracteres, segundo elemento 32 caracteres, etc.
$0=$0
BlockNome = $1 # Armazena o nome do bloco






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts