Programação GAWK [RESOLVIDO]

1. Programação GAWK [RESOLVIDO]

Gregori Rovadoscki
Gregori.rov

(usa Outra)

Enviado em 17/03/2016 - 15:55h

Olá, estou manipulando um banco de dados, estou usando o comanda awk, no entanto, a seguinte mensagem aparece:
awk: program limit exceeded: maximum number of fields size=32767

procurando pela internet encontrei o comando gawk.
No entanto eu não consigo passar a rotina de awk para o gawk. Outra solução seria se eu pudesse o fields size. Por gentileza, tem como alguém me ajudar com essas duas alternativas agradeço muito.

Segue minha programação abaixo

#!/bin/bash
for w in {1..179};
do
sed -n "$w"p snps_clean > a
cut -c 14- a > b
cut -c -3 a > id
awk '{for(i=0;i<54241;i++)print}' id > id2
sed 's/.\{1\}/& /g' b > c
awk 'NR==1{for(i=1;i<=NF;i++)a[i]=$i}NR=1{x=1;for(i=1;i<=NF;i+=1)print a[x++] }' c > d
paste -d" " id2 d > genot
cp -r ../genot ../gen/w_$w;
done


  


2. Re: Programação GAWK

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/03/2016 - 17:21h

Gregori.rov escreveu:
Olá, estou manipulando um banco de dados, estou usando o comanda awk, no entanto, a seguinte mensagem aparece:
awk: program limit exceeded: maximum number of fields size=32767
procurando pela internet encontrei o comando gawk.
No entanto eu não consigo passar a rotina de awk para o gawk. Outra solução seria se eu pudesse o fields size. Por gentileza, tem como alguém me ajudar com essas duas alternativas agradeço muito.
Segue minha programação abaixo
#!/bin/bash
for w in {1..179};
do
sed -n "$w"p snps_clean > a
cut -c 14- a > b
cut -c -3 a > id
awk '{for(i=0;i<54241;i++)print}' id > id2
sed 's/.\{1\}/& /g' b > c
awk 'NR==1{for(i=1;i<=NF;i++)a[i]=$i}NR=1{x=1;for(i=1;i<=NF;i+=1)print a[x++] }' c > d
paste -d" " id2 d > genot
cp -r ../genot ../gen/w_$w;
done

-----------------------------------------------------------------------------------------------------------------------------------------------
Boa tarde.
Para "FACILITAR as COISAS", poste o que você tem, e o que deseja obter....
Tipo:
Tenho o arquivo RUA.txt, no formato:
  {
"cep": "01011-901",
"logradouro": "Rua São Bento",
"complemento": "279",
"bairro": "Centro",
"localidade": "São Paulo",
"uf": "SP",
"ibge": "3550308",
"gia": "1004"
},

E preciso no formato:

cep=01011-901;logradouro=Rua São Bento;complemento=279;bairro=Centro;localidade=São Paulo;UF=SP

No aguardo,
Marcelo



3. Programação

Gregori Rovadoscki
Gregori.rov

(usa Outra)

Enviado em 17/03/2016 - 19:06h

Oi, Marcelo, muito obrigado pela atenção. E desculpa ter jogado meu problema sem maiores informações. Bom, trabalho com genética.
E tenho uma banco formato txt por assim dizer, com apenas "duas colunas", vou mostras uma porção pequena do meu banco.

coluna 1 colunas2

linha 1 100 11111111111111111111111111111111111111111111111111111111111111111111111111111111
linha 2 200 2222222222222222222222222222222222222222222222222222222222222222222222
linha 3 300 3333333333333333333333333333333333333333333333333333333333333333333333

as linhas da coluna 2 são desse jeito mesmo sem espaço nenhum formando apenas uma coluna, mas com mais 57000 caracteres, no sentindo literal mesmo, sem exageros, considerando então ter apenas uma coluna para esse tanto de caracter, imagine que a coluna 2 fosse composta por uma única palavra gigante pra cada linha. E meu banco tem mais 176 linhas apenas. A coluna 1 é o individuo, a coluna dois é o genótipo dele que seria essa palavra gigante. E eu preciso transpor essas linhas transformando-as em colunas:
eu quero que ele fique da seguinte forma:

coluna 1
linha 1 123
Linha 2 123
linha 3 123
linha 4 123
linha 5 123
linha 6 123
linha 7 123
linha 8 123
linha 9 123
linha 10 123
linha 11 123
linha 12 123
linha 13 123
linha 14 123
linha 15 123

Bom a coluna 1 não é necessario ficar no arquivo só preciso dos número 1, 2 e 3, que são os genótipos porque o programa que usarei e eu preciso transpor os dados dessa forma, apenas uma coluna gigante sem espaço algum. Se meu banco tinha 179 linhas ele vai passar a ter agora 57000, e no caso apenas uma coluna. Espero ter sido um pouco mais claro. E novamente obrigado.








4. Assunto resolvido

Gregori Rovadoscki
Gregori.rov

(usa Outra)

Enviado em 17/03/2016 - 21:42h

Olá, Marcelo.. Muito obrigado por se oferecer em me ajudar. Mas consegui resolver o meu problema
Muito obrigado!!


5. Re: Programação GAWK [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/03/2016 - 21:51h

Boa noite, Gregori.rov
Estava enviando uma mensagem para tirar umas duvidas . . .
Poste a solução...

Abç.:
Marcelo













Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts