Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
site google



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 12-07-2007
Usuário
 

Join Data: dezembro 2007
Posts: 9
Precisa de ajuda com um script para reorganizar colunas

Eu tenho um arquivo que é ponto e vírgula delimitada e dos cabeçalhos de coluna são sempre os mesmos, mas a coluna é totalmente aleatória número cada vez que este arquivo é gerado. Eu não tenho as habilidades para fazer um script para este talvez alguém possa ajudar.

Gostaria de poder ter esse arquivo, que tem mais de 80 colunas e pegue cerca 5/10 colunas e reorganizar-los e colocar isso em um outro arquivo para que eu possa correr o meu script para obter a informação de que necessitam.

Só por um teste aqui estão algumas colunas gostaria de sair deste ensaio arquivo abaixo:

Atual Ordem:
Num
data
tempo
org
produto
regra

Gostaria de reorganizar a esta ordem:

regra
produto
org
tempo
data
Num


número, data, hora; orig; tipo; acção; alerta; i / f_name; i / f_dir; produto; log_sys_message; regra
0; 21-novembro-07; 23:59:00; 2.2.2.2; controle;;;daemon; inbound; VPN-1 & Firewall-1; Log arquivo foi mudado para: 2007-11-21_235900.log;
1; 22-novembro-07; 0:53:28; 3.3.3.3; log; gota; Lan1; inbound; VPN-1 & Firewall-1;; 16
2; 22-novembro-07; 0:53:29; 3.3.3.3; log; aceitar; Lan1; inbound; VPN-1 & Firewall-1;; 3
3; 22-novembro-07; 0:53:29; 3.3.3.3; log; aceitar; Lan1; inbound; VPN-1 & Firewall-1;; 3
4, 22-novembro-07; 0:53:30; 3.3.3.3; log; aceitar; Lan1; inbound; VPN-1 & Firewall-1; 15
5; 22-novembro-07; 0:53:30; 3.3.3.3; log; gota; Lan1; inbound; VPN-1 & Firewall-1;; 16
6; 21-novembro-07; 23:20:39; 4.4.4.4; log; aceitar; eth3c0; inbound; VPN-1 & Firewall-1, 8;
7, 21-novembro-07; 23:20:40; 4.4.4.4; log; aceitar; eth3c0; inbound; VPN-1 & Firewall-1, 8;
8, 21-novembro-07; 23:20:41; 4.4.4.4; log; aceitar; eth3c0; inbound; VPN-1 & Firewall-1, 8;
Links Patrocinados
  #2 (permalink)  
Old 12-07-2007
Usuário
 

Join Date: Jun 2007
Localização: Beijing China
Posts: 1.133
awk

oi

código:


Código:
nawk 'BEGIN{
FS=";"
format="%s;%s;%s;%s;%s;%s\n"
}
{
printf(format,$12,$10,$4,$3,$2,$1)
}' filename

  #3 (permalink)  
Old 12-07-2007
Usuário
 

Join Data: dezembro 2007
Posts: 9
Sherry obrigado por isso! Mas é essa a impressão colunas com base em sua posição no arquivo correto? O problema que tenho é que o cabeçalho da coluna permanece a mesma, mas o número da coluna no arquivo mudanças, por exemplo:

data pode ser coluna $ 2 hoje e amanhã $ 5 e US $ 7, o dia seguinte. É totalmente aleatório. Então, como eu poderia imprimir os dados, indicando que cabeçalho nome quero imprimir?
  #4 (permalink)  
Old 12-07-2007
vgersh99's Avatar
Moderador
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.198
# Isto irá produzir o 'default' colunas: "regra produto orig time data num"
nawk-f n3.awk myInputFile

# Isto irá produzir o 'personalizado' colunas: "Num tempo orig"
nawk-v cols \u003d "Num tempo orig '-f n3.awk myInputFile

n3.awk:

Código:
BEGIN {
  FS=OFS=";"
  DEFcols="rule product orig time date num"

  if (cols == "")
    cols=DEFcols

  colsN=split(cols, colsA, " ")
}

FNR==1 {
  for(i=1; i<=NF; i++)
     headA[$i] = i
  next
}
{
  for(i=1; i<=colsN; i++)
    printf("%s%s", $headA[colsA[i]], (i==colsN) ? ORS : OFS)
}

  #5 (permalink)  
Old 12-08-2007
Usuário
 

Join Data: dezembro 2007
Posts: 9
Obrigado por toda a ajuda, mas eu tenho um sistema gentoo que não tem nawk sobre ela. Existe uma maneira de instalar aquele em gentoo, não fui capaz de encontrá-lo ainda. Ou existe uma maneira de executar este script com awk ou alguma outra utilidade como perl que pode ser no meu sistema?
  #6 (permalink)  
Old 12-08-2007
Usuário
 

Join Data: dezembro 2007
Posts: 9
Desculpa para esse post acima tenho este trabalho com awk que está ligada a sym tímido.

Obrigado por este script seu awesome! Existe uma maneira para que a impressão do cabeçalho, na parte superior também?
  #7 (permalink)  
Old 12-08-2007
Usuário
 

Join Data: dezembro 2007
Posts: 9
Penso que esta não está funcionando da maneira que eu preciso, talvez o exemplo que dei não foi o suficiente, eu pensei que eu poderia ter descoberto o script com alguma ajuda a partir deste fórum, mas aqui vai mais algumas:

O meu cabeçalho pode ser 70-100 colunas (separados por ponto e vírgula):

número, data, hora; orig; tipo; acção; alerta; i / f_name; i / f_dir; produto; log_sys_message; regra; rule_uid; rule_name; SmartDefense perfil; service_id; ICMP; src; dst; proto; ICMP Tipo; ICMP Código ; serviço; s_port; xlatesrc; xlatedst; NAT_rulenum; NAT_addtnl_rulenum; xlatedport; xlatesport; message_i nfo; regime:; métodos:; peer gateway; encriptação insucesso:; parceiro; comunidade; fw_subproduct; vpn_feature_name; msg; scan direcção; ataque; Attack Info ; pacote TCP fora do estado; tcp_flags; srckeyid; dstkeyid; IKE:; CookieI; CookieR; msgid; IKE notificação:; Certificado DN:; IKE IDs:; usuário; razão:; reject_category; Sessão:; L2TP:; PPP:; MAC:; MF:; om_method:; assigned_IP:; máquina:; fonte interna VPN IP; start_time; vpn_user; mensagem; antigo IP; antigo porto; novo IP; novo porto; spi; encriptação falhar razão:; rpc_prog; sys_message:; decorrido; reject_reason; Sistema de Alerta mensagem; Objeto; Evento; Parâmetro; Condição; atual valor; H.323 mensagem; src número de telefone, número de telefone dst; H.323 ilegal redirecionamento; dst regime:; dst métodos:; dst peer gateway; estatuto rota:; dst parceiro; dst comunidade; Internal_CA:; serial_num:; dn:; mensagem:


Fora de todos estes os que eu estou procurando são as seguintes (observe que tem um nome que nos espaços):

data, hora; origem; src; usuário; VPN IP fonte interna

A coluna nomes sempre permanecer a mesma, mas sua ordem mudanças. Parece que eu não posso obter o código acima para trabalhar com este muitas colunas. Seria bom para imprimir o cabeçalho do arquivo também outpout
Links Patrocinados
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Desligado


Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Awk script para imprimir todas as colunas excpet a um determinado kn.naresh Programação Shell Script e 3 05-22-2008 08:34
shell script exigido para converter as linhas para colunas suresh3566 Programação Shell Script e 2 05-07-2008 06:25
Shell script para separte colunas ... sam_78_nyc Programação Shell Script e 2 07-09-2007 06:21
Precisa de ajuda em Awk; String de Pesquisa e reorganizar colunas spring_buck Programação Shell Script e 2 04-05-2007 12:40
Reorganizar bytes dentro de um arquivo txt yankee428 UNIX para Dummies Perguntas & Respostas 4 06-16-2005 02:55



Todos os horários são GMT -4. A hora é agora 06:13.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Brasil Content Copyright © 1993-2010. Todos os direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0