Comando para gerar relatório

1. Comando para gerar relatório

Douglas Augusto Baião
douglasbaiao

(usa Ubuntu)

Enviado em 09/06/2017 - 16:14h

Boa tarde a todos. Estou tento um pequeno empecilho na hora de simplificar meu relatório.
Tenho um arquivo de 30mb em formato .csv e quero excluir alguns campos deles usando o terminal do ubuntu.

Quando eu informo o nome completo do campo que quero fazer a exclusão funciona. Mas quando informo parte de um nome não da certo.

O código completo:
sed 1,3d print_logs.csv |
cut -d';' -f1,2,3,5,16,20,22,33 |
sort -nr -t\; -k 7 |
awk -F ";" '{ if($7 >= 15) print }' |
awk -F ";" '{ if($6 != "PDF.js viewer") print}' |
awk -F ";" '{ if($6 != "ActiveReports Document") print}' |
awk -F ";" '{ if($6 != "versaoDocumento.do.pdf") print}' |
awk -F ";" '{ if($6 != "versaoDocAnexo.do.pdf") print}' |
awk -F ";" '{ if($6 != "versaoDocAnexo.do") print}' |
awk -F ";" '{ if($6 != "frmRelatorios.aspx.pdf") print}' |
awk -F ";" '{ if($6 != "Mala Direta Assembleia Ativos.pdf") print}' |
awk -F ";" '{ if($6 != "pesquisa recep") print}' |
awk -F ";" '{ if($6 != "https://ipasgonet.ipasgo.go.gov.br/SIPEC/Relatorios/rptUsuarioP") print}' |
awk -F ";" '{ if($6 != "https://portalsistemas.ipasgo.go.gov.br/saat/compartilhados/imp") print}' |
awk -F ";" '{ if($6 != "pesquisa%20recepAnexo Folder.pdf") print}' |
awk -F ";" '{ if($6 != "Informativo Usu") print}' |
awk -F ";" '{ if($6 != "Pesquisa de Satisfacao - CSE") print}' |
awk -F ";" '{ if($6 != "Guia M") print}' |
awk -F ";" '{ if($6 != "Sistema Prestadores PCO") print}' |
awk -F ";" '{ if($6 != "Folder Tab. Atuarial") print}' |
awk -F ";" '{ if($6 != "BuscaProcessoUsuarioExterno") print}' |
awk -F ";" '{ if($6 != "Foto de p") print}' >> print_logs3.csv

Por exemplo:
na linha awk -F ";" '{ if($6 != "Guia M") print}' eu não consigo fazer a exclusão apenas com essa informação.

Se alguém puder me ajudar!


  


2. Re: Comando para gerar relatório

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 09/06/2017 - 16:29h

douglasbaiao escreveu:

Boa tarde a todos. Estou tento um pequeno empecilho na hora de simplificar meu relatório.
Tenho um arquivo de 30mb em formato .csv e quero excluir alguns campos deles usando o terminal do ubuntu.

Quando eu informo o nome completo do campo que quero fazer a exclusão funciona. Mas quando informo parte de um nome não da certo.

O código completo:
sed 1,3d print_logs.csv |
cut -d';' -f1,2,3,5,16,20,22,33 |
sort -nr -t\; -k 7 |
awk -F ";" '{ if($7 >= 15) print }' |
awk -F ";" '{ if($6 != "PDF.js viewer") print}' |
awk -F ";" '{ if($6 != "ActiveReports Document") print}' |
awk -F ";" '{ if($6 != "versaoDocumento.do.pdf") print}' |
awk -F ";" '{ if($6 != "versaoDocAnexo.do.pdf") print}' |
awk -F ";" '{ if($6 != "versaoDocAnexo.do") print}' |
awk -F ";" '{ if($6 != "frmRelatorios.aspx.pdf") print}' |
awk -F ";" '{ if($6 != "Mala Direta Assembleia Ativos.pdf") print}' |
awk -F ";" '{ if($6 != "pesquisa recep") print}' |
awk -F ";" '{ if($6 != "https://ipasgonet.ipasgo.go.gov.br/SIPEC/Relatorios/rptUsuarioP") print}' |
awk -F ";" '{ if($6 != "https://portalsistemas.ipasgo.go.gov.br/saat/compartilhados/imp") print}' |
awk -F ";" '{ if($6 != "pesquisa%20recepAnexo Folder.pdf") print}' |
awk -F ";" '{ if($6 != "Informativo Usu") print}' |
awk -F ";" '{ if($6 != "Pesquisa de Satisfacao - CSE") print}' |
awk -F ";" '{ if($6 != "Guia M") print}' |
awk -F ";" '{ if($6 != "Sistema Prestadores PCO") print}' |
awk -F ";" '{ if($6 != "Folder Tab. Atuarial") print}' |
awk -F ";" '{ if($6 != "BuscaProcessoUsuarioExterno") print}' |
awk -F ";" '{ if($6 != "Foto de p") print}' >> print_logs3.csv

Por exemplo:
na linha awk -F ";" '{ if($6 != "Guia M") print}' eu não consigo fazer a exclusão apenas com essa informação.

Se alguém puder me ajudar!


velho ... faz o seguinte pra gente entender certinho o q vc precisa

posta para gente uma pequena parte do arquivo .csv e depois posta a saída desejada !!!

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


3. Re: Comando para gerar relatório

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/06/2017 - 16:49h

douglasbaiao escreveu:

Boa tarde a todos. Estou tento um pequeno empecilho na hora de simplificar meu relatório.
Tenho um arquivo de 30mb em formato .csv e quero excluir alguns campos deles usando o terminal do ubuntu.

Quando eu informo o nome completo do campo que quero fazer a exclusão funciona. Mas quando informo parte de um nome não da certo.

O código completo:
sed 1,3d print_logs.csv |
cut -d';' -f1,2,3,5,16,20,22,33 |
sort -nr -t\; -k 7 |
awk -F ";" '{ if($7 >= 15) print }' |
awk -F ";" '{ if($6 != "PDF.js viewer") print}' |
awk -F ";" '{ if($6 != "ActiveReports Document") print}' |
awk -F ";" '{ if($6 != "versaoDocumento.do.pdf") print}' |
awk -F ";" '{ if($6 != "versaoDocAnexo.do.pdf") print}' |
awk -F ";" '{ if($6 != "versaoDocAnexo.do") print}' |
awk -F ";" '{ if($6 != "frmRelatorios.aspx.pdf") print}' |
awk -F ";" '{ if($6 != "Mala Direta Assembleia Ativos.pdf") print}' |
awk -F ";" '{ if($6 != "pesquisa recep") print}' |
awk -F ";" '{ if($6 != "https://ipasgonet.ipasgo.go.gov.br/SIPEC/Relatorios/rptUsuarioP") print}' |
awk -F ";" '{ if($6 != "https://portalsistemas.ipasgo.go.gov.br/saat/compartilhados/imp") print}' |
awk -F ";" '{ if($6 != "pesquisa%20recepAnexo Folder.pdf") print}' |
awk -F ";" '{ if($6 != "Informativo Usu") print}' |
awk -F ";" '{ if($6 != "Pesquisa de Satisfacao - CSE") print}' |
awk -F ";" '{ if($6 != "Guia M") print}' |
awk -F ";" '{ if($6 != "Sistema Prestadores PCO") print}' |
awk -F ";" '{ if($6 != "Folder Tab. Atuarial") print}' |
awk -F ";" '{ if($6 != "BuscaProcessoUsuarioExterno") print}' |
awk -F ";" '{ if($6 != "Foto de p") print}' >> print_logs3.csv

Por exemplo:
na linha awk -F ";" '{ if($6 != "Guia M") print}' eu não consigo fazer a exclusão apenas com essa informação.

Se alguém puder me ajudar!


Boa tarde Douglas.
A não ser que eu tenha entendido errado, sua lógica tem falhas . . .
Por exemplo:
No 1º "awk",
awk -F ";" '{ if($7 >= 15) print }' | 

Se "$7" for MENOR que "15", o pipe não direciona "NADA" para o PRÓXIMO "awk".

att.:
marcelo oliver


4. Re: Comando para gerar relatório

Douglas Augusto Baião
douglasbaiao

(usa Ubuntu)

Enviado em 12/06/2017 - 08:43h

Mauriciodez escreveu:

velho ... faz o seguinte pra gente entender certinho o q vc precisa

posta para gente uma pequena parte do arquivo .csv e depois posta a saída desejada !!!

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Mano, é o seguinte. Como no exemplo, eu queria achar uma maneira de pesquisar partes do nome e fazer a exclusão. Mas no código como esta acima, não deixa fazer a exclusão.
Pq qdo fiz a exportação do sistema, ele gerou com alguns caracteres especiais e não consigo decifrar qual é. Por isso preciso saber como fazer a pesquisa com partes do nome e fazer a exclusão.

ex:
2017-05-22 13:40:55 FRANCIELLE PEREIRA DUARTE Supervisăo de Atendimento Médico Ambulatorial brother mfc-8912dw printer Guia Médico

Onde esta Guia Médico no arquivo esta Guia M(caracteres especiais)ico





5. Re: Comando para gerar relatório

Douglas Augusto Baião
douglasbaiao

(usa Ubuntu)

Enviado em 12/06/2017 - 08:44h

msoliver escreveu:

Boa tarde Douglas.
A não ser que eu tenha entendido errado, sua lógica tem falhas . . .
Por exemplo:
No 1º "awk",
awk -F ";" '{ if($7 >= 15) print }' | 

Se "$7" for MENOR que "15", o pipe não direciona "NADA" para o PRÓXIMO "awk".

att.:
marcelo oliver


Marcelo bom dia.
Esse primeiro awk vai ler a coluna 7 e fazer a exclusão de páginas menor que 15.
Eu separei linha por linha, pra ficar melhor de entender o código.


6. Re: Comando para gerar relatório

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 12/06/2017 - 11:27h

douglasbaiao escreveu:
ex:
2017-05-22 13:40:55 FRANCIELLE PEREIRA DUARTE Supervisăo de Atendimento Médico Ambulatorial brother mfc-8912dw printer Guia Médico

Onde esta Guia Médico no arquivo esta Guia M(caracteres especiais)ico


velho ... colocar primeiro no script uma função ou instrução de tratamento para os caracteres especiais

EX:
sed 's/[caracter-especial]/a/g' arquivo.csv
sed 's/[caracter-especial]/e/g' arquivo.csv
sed 's/[caracter-especial]/i/g' arquivo.csv
sed 's/[caracter-especial]/o/g' arquivo.csv
sed 's/[caracter-especial]/u/g' arquivo.csv


se tiver varios caracters especias para uma mesma letra vc po colocar tudo no mesmo sed

EX: Substitui "1", "2", ou "3" por "a"
sed 's/1\|2\|3/a/g' arquivo.csv 


NOTA: se quiser alterar o arquivo fisicamente coloque o parametro "-i" no sed !!!

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


7. Re: Comando para gerar relatório

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2017 - 11:40h

douglasbaiao escreveu:
Mano, é o seguinte. Como no exemplo, eu queria achar uma maneira de pesquisar partes do nome e fazer a exclusão. Mas no código como esta acima, não deixa fazer a exclusão.
Pq qdo fiz a exportação do sistema, ele gerou com alguns caracteres especiais e não consigo decifrar qual é. Por isso preciso saber como fazer a pesquisa com partes do nome e fazer a exclusão.

ex:
2017-05-22 13:40:55 FRANCIELLE PEREIRA DUARTE Supervisăo de Atendimento Médico Ambulatorial brother mfc-8912dw printer Guia Médico
Onde esta Guia Médico no arquivo esta Guia M(caracteres especiais)ico


Esses caracteres especias referem-se ao acento da palavra Médico . . . .
Para "driblar" o problema da acentuação, ao invez de:
awk -F ";" '{ if($6 != "Guia M") print}'
Faça:
awk -F";" '$6 !~ /Guia M.*/{print}'
A Verificar:
Exportou do windows?
Qdo exportou, qual o idioma que o sistema estava?
No relatório, qual o conjunto de caracteres?
Execute:
file print_logs.csv
E poste a saída.

mso



8. Re: Comando para gerar relatório

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2017 - 11:47h

Mauriciodez escreveu:

douglasbaiao escreveu:
ex:
2017-05-22 13:40:55 FRANCIELLE PEREIRA DUARTE Supervisăo de Atendimento Médico Ambulatorial brother mfc-8912dw printer Guia Médico

Onde esta Guia Médico no arquivo esta Guia M(caracteres especiais)ico


velho ... colocar primeiro no script uma função ou instrução de tratamento para os caracteres especiais

EX:
sed 's/[caracter-especial]/a/g' arquivo.csv
sed 's/[caracter-especial]/e/g' arquivo.csv
sed 's/[caracter-especial]/i/g' arquivo.csv
sed 's/[caracter-especial]/o/g' arquivo.csv
sed 's/[caracter-especial]/u/g' arquivo.csv


se tiver varios caracters especias para uma mesma letra vc po colocar tudo no mesmo sed

EX: Substitui "1", "2", ou "3" por "a"
sed 's/1\|2\|3/a/g' arquivo.csv 


NOTA: se quiser alterar o arquivo fisicamente coloque o parametro "-i" no sed !!!

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Mauricio, o modo mais prático de fazer isso é:
sed 'y/áéíóú/aeiou/' 

Mas, não é o caso, pois, o arquivo "RELATÓRIO" foi gerado sem os acentos e com caracteres especiais . . .

mso


9. Re: Comando para gerar relatório

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 12/06/2017 - 12:09h

msoliver escreveu:

Mauriciodez escreveu:

douglasbaiao escreveu:
ex:
2017-05-22 13:40:55 FRANCIELLE PEREIRA DUARTE Supervisăo de Atendimento Médico Ambulatorial brother mfc-8912dw printer Guia Médico

Onde esta Guia Médico no arquivo esta Guia M(caracteres especiais)ico


velho ... colocar primeiro no script uma função ou instrução de tratamento para os caracteres especiais

EX:
sed 's/[caracter-especial]/a/g' arquivo.csv
sed 's/[caracter-especial]/e/g' arquivo.csv
sed 's/[caracter-especial]/i/g' arquivo.csv
sed 's/[caracter-especial]/o/g' arquivo.csv
sed 's/[caracter-especial]/u/g' arquivo.csv


se tiver varios caracters especias para uma mesma letra vc po colocar tudo no mesmo sed

EX: Substitui "1", "2", ou "3" por "a"
sed 's/1\|2\|3/a/g' arquivo.csv 


NOTA: se quiser alterar o arquivo fisicamente coloque o parametro "-i" no sed !!!

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Mauricio, o modo mais prático de fazer isso é:
sed 'y/áéíóú/aeiou/' 

Mas, não é o caso, pois, o arquivo "RELATÓRIO" foi gerado sem os acentos e com caracteres especiais . . .

mso


pois então ... justamente foi por isso q dei a ideia daquele sed ... o rapaz tem EX: M&123;dico ... logo um sed para tratar
sed 's/&123;/e/g' arquivo.csv 


a não ser se eu entendi errado acho q seria o melhor modo não ???

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts