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

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

Re: [shell-script] Como pegar só os campos necessários?


From: Julio C. Neves
Subject: Re: [shell-script] Como pegar só os campos necessários?
Date: Tue, 1 Apr 2014 21:34:05 -0300

Desculpe, dei uma bobeada. A linha correta seria:

paste <(cut -f1 -d\; TPD_2014_03_27.old) <(echo "$Qtd") <(cut -f4 -d\; TPD_2014_03_27.old)

O paste serve para "colar" arquivos e eu estava colocando uma variável no meio. Isso com certeza vai resolver o erro:

paste: 2 : Cannot open the file. 1,

Os outros erros se não sumirem com essa correção, podem ser originados por uma dessas duas causas: vc não estar usando bash; o arquivo TPD_2014_03_27.old ser muito grande para caber na memória.


Abcs,
Julio
@juliobash

Próximos cursos de Shell

Cidade

Local

Período

Rio de Janeiro

EDX

07-11/04

Dou treinamento de shell em qualquer cidade.
Para detalhes, entre em contato por email ou
echo 436233889341364416673541503686485725801923229706P | dc 



2014-04-01 19:50 GMT-03:00 Anderson <address@hidden>:
 

Boa tarde Julio,

Testei a sua solução, porem não funcionou muito bem. Veja só o erro q renornou:

Pid 18778 received a SIGSEGV for stack growth failure.
Possible causes: insufficient memory or swap space,
or stack size exceeded maxrsessiz
or stack size limit is set too small.
A qtd total i bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1, bundling space exceeded on line 1,
paste: 2 : Cannot open the file. 1,


@itamarnet@yahoo.com.br

Daria pra adicionar algum filtro para o campo nome? Um grep pra pegar somente o B089 por exemplo?
Pois dentro de um mesmo arquivo tenho vários nomes diferentes. Ex: B01, B08, B22, etc

awk '

BEGIN {
FS=";"
Total = 0 
}
{
print $1, $2, $4
Total += $2
}
END { print Total }
' TPD_2014_03_*.old


Conteúdo do arq:

B089;6;GP97;20140321
nome qtd tipo   data



Em 29 de março de 2014 18:37, Julio C. Neves <address@hidden> escreveu:
 

Anderson,
acabei de pensar numa saída incrível para esse problema. Deve ser lenta, mas é bem inusitada. Veja:

Qtd=$(cut -f2 -d\; TPD_2014_03_27.old)
echo A qtd total é $(tr ' ' + <<< $Qtd | bc)
paste <(cut -f1 -d\; TPD_2014_03_27.old) $Qtd <(cut -f4 -d\; TPD_2014_03_27.old)

As colunas estarão separadas por <TAB>. Se vc quiser outro delimitador, p. ex. dois pontos, use a opção -d: no paste

Experimente aí e diga se funcionou e se vc entendeu

Abcs,
Julio
@juliobash

Próximos cursos de Shell

Cidade

Local

Período

Rio de Janeiro

EDX

07-11/04

Dou treinamento de shell em qualquer cidade.
Para detalhes, entre em contato por email ou
echo 436233889341364416673541503686485725801923229706P | dc 



Em 29 de março de 2014 11:25, Renan Fuentes <address@hidden> escreveu:

 

Bom dia,


Em 28 de março de 2014 17:50, Anderson <address@hidden> escreveu:
 

Prezados, boa tarde.


Tenho vários arquivos (gerados diariamente) no seguinte formato:
                                           
                                              Data
Ex do nome do arquivo TPD_2014_03_27.old 

Conteúdo do arq:

B089;6;GP97;20140321
nome qtd tipo   data

Gostaria de saber como eu faço pra calcular a qtd total do mês? E pegar as informações nome + qtd + data?

awk -F";" '{print substr($4,5,2)}' teste.txt | sort | uniq -c 
 

Vlw


Abraços 
 




--
______________________________________
Renan Catalani Fuentes de Campos

Linkedin:  br.linkedin.com/in/renanfuentes/
Skype:
renan_fuentes

Telefone: (19) 9717-9845





reply via email to

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