The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX & avançada para usuários experientes
.
google unix.com



UNIX & avançada para usuários experientes Especialista-a-Expert. Saiba avançado UNIX, comandos UNIX, Linux, Sistemas Operativos, Administração de Sistemas, Programação, Shell, shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Extraindo Texto krabu Programação Shell Script e 3 04-07-2009 04:16
extrair texto e reutilizando o texto para renomear arquivos JohnDS UNIX para Dummies Perguntas & Respostas 7 02-05-2009 03:55
Extraindo informações de config / texto transformação oconmx Programação Shell Script e 3 01-21-2009 07:09
ajuda necessária para substituir texto em vi Chandu2u Programação Shell Script e 6 01-26-2008 11:12
Ajuda necessária quanto Extraindo linhas a partir de um arquivo google_ever Programação Shell Script e 1 10-12-2005 08:02

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Avaliação: Thread Rating: 1 votes, 4.00 average. Display Modes
  #1 (permalink)  
Old 06-20-2009
hareeshram hareeshram is offline
Usuário
  
 

Join Date: Mar 2007
Localização: Chennai
Posts: 3
Extraindo os ficheiros de texto

Seria altamente sensível se qualquer um ajuda-me nesta matéria. Estou a tentar obtê-lo feito através de Java, mas eu amo unix e acredito que pode ser feito em poucos minutos com o jovem de linhas.

A entrada arquivo de log é um arquivo de texto contém múltiplas entradas separadas por uma linha em branco.
Cada entrada separada processo corresponde à atualização de informações de um arquivo.

! ENTRADA texto .....< INFO> ou <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! Mensagem solicitando atualização relatório para o arquivo: test.java

! ENTRADA texto .....< INFO> ou <OKAY> <RESOURCE: /test/src/com/test1/*/test1.java> 2009-06-18 13:01:01.181
! MENSAGEM informações em test1.java será atualizado.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: caminho completo /file name> 2009-06-18 13:02:25.681
! Mensagem irá adicionar importação de org.apache.beehive.netui.pageflow.annotations.Jpf para anotação JPF apoio.

Cada entrada começa com "! ENTRADA" como mostrado acima e será seguido pelo texto "com.bea.workshop.upgrade81" e, em seguida, ele será seguido por
dois tipos de tags: <OKAY> e <INFO>
E então ele será seguido por tag <RESOURCE: que contém o caminho completo do arquivo e, em seguida, seguido por hora, conforme acima indicado.

Se é <OKAY> e, em seguida, será a segunda linha abaixo
! Mensagem solicitando atualização relatório para o arquivo: filename (que não é de muita importância para a minha saída)

Ex:
! ENTRADA texto .....< INFO> ou <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! Mensagem solicitando atualização relatório para o arquivo: nome do arquivo

Se é <INFO>, em seguida, também de segunda linha como será
! Mensagem solicitando atualização relatório para o arquivo: filename
Mas certamente será seguido por um outro conjunto de vários pares linha começando com tags! Subentrada,! Mensagem como abaixo

! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: path/filename> 2009-06-18 13:02:25.681
! Mensagem irá adicionar importação de org.apache.beehive.netui.pageflow.annotations.Jpf para anotação JPF apoio.


Minha exigência é como a seguir:

Requisito 1

1) Para todas as entradas que contêm <OKAY> etiqueta, eu preciso para extrair os nomes dos arquivos que serão depois <RESOURCE :..... e antes da hora
Observe as entradas são separadas por uma linha em branco

Requisito 2

2) Para todas as linhas com <INFO> tag, gostaria de ter um arquivo de texto com entradas como esta

Caminho completo eo nome do arquivo e, em seguida, na próxima linha
Todo o texto a seguir! MESAAGE direita abaixo da linha contendo a etiqueta da correspondente "! Subentrada 1" tags


Exemplo de entrada:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpathr/Test.java> 2009-06-18 13:02:28.368
! Mensagem solicitando atualização relatório para o arquivo: Test.java

! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! Mensagem solicitando atualização relatório para o arquivo: Test1.jpf

! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! Mensagem solicitando atualização relatório para o arquivo: Test2.jpf
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MENSAGEM O Java 5 anotação Jpf.Controller precisa de ser adicionado.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! Mensagem mais averbação de Jpf.Action precisa de ser adicionado.

! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Mensagem solicitando atualização relatório para o arquivo: Test3.jpf
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MENSAGEM O Java 5 anotação Jpf.Controller precisa de ser adicionado.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Mensagem irá adicionar importação de org.apache.beehive.netui.pageflow.annotations.Jpf para anotação JPF apoio.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MENSAGEM ABC precisa de ser adicionado.


Saída para requirement1:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
Test.java
Test1.jpf

Saída para requirement2:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
/ fullpath/Test2.jpf
O Java 5 anotação Jpf.Controller precisa de ser adicionado.
Mais Jpf.Action anotação das necessidades a ser adicionado.

/ fullpath/Test3.jpf
O Java 5 anotação Jpf.Controller precisa de ser adicionado.
Acrescentará importação de org.apache.beehive.netui.pageflow.annotations.Jpf JPF anotação de apoio.
ABC precisa de ser adicionado.

Última edição por hareeshram; em 06/20/2009 10:09..
  #2 (permalink)  
Old 06-20-2009
scottn scottn is online now Forum Advisor  
Membro VIP
  
 

Join Date: Jun 2009
Localização: Zürich, CH
Mensagens: 1.123
Isto funciona, mas, provavelmente, apenas se a sua entrada é exatamente como você descreveu!


Código:
echo "Output from requirement 1"
echo "========================="
grep "<OKAY>.*RESOURCE" infile | sed -e "s/.*RESOURCE:.*\/\(.*\)>.*/\1/" | sort -u

echo
echo "Output from requirement 2"
echo "========================="
awk '
  /^!ENTRY.*<INFO>/ { X = 1; sub( /.*RESOURCE: /, "", $0 ); sub( />.*/, "", $0 ); print }
  (X == 1) && (/^!SUBENTRY/) { X++ }
  (X > 1) && ($1 ~ /^!MESSAGE/) { sub( /!MESSAGE /, "", $0 ); print }
  (X > 1) && ($1 ~ /^$/) { print ""; X = 0 }
' infile
 
 
Output:
Output from requirement 1
=========================
Test1.jpf
Test.java
 
Output from requirement 2
=========================
/fullpath/Test2.jpf
The Java 5 annotation Jpf.Controller needs to be added.
More annotation of Jpf.Action needs to be added.
 
/fullpath/Test3.jpf
The Java 5 annotation Jpf.Controller needs to be added.
Will add import of org.apache.beehive.netui.pageflow.annotations.Jpf for JPF annotation support.
ABC needs to be added.


Última edição por scottn; em 06/20/2009 11:44..
  #3 (permalink)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
Usar basbaque, nawk ou /usr/xpg4/bin/awk ligado Solaris:

1.


Código:
awk '/<OKAY>/ { 
  sub(/>[^>]*$/, "")
  n = split($0, t, "/")
  print t[n]   
  }' infile

2.


Código:
awk '!NF { f = 0 }
/^!ENTRY.*<INFO>/ {
  sub(/>[^>]*$/, "")
  sub(/.*RESOURCE: /, "")
  print; f = 1
  }  
f && /!SUBENTRY/ { f++ }   
f > 1 && sub(/!MESSAGE /, "")
' infile


Última edição por radoulov; em 06/20/2009 11:48..
Bits Awarded / Cobrado para radoulov para este Post
Data Usuário Comentário Valor
06-22-2009 hareeshram Graças à solução inteligente! 200
  #4 (permalink)  
Old 06-20-2009
scottn scottn is online now Forum Advisor  
Membro VIP
  
 

Join Date: Jun 2009
Localização: Zürich, CH
Mensagens: 1.123
Legal!

Ganhaste
  #5 (permalink)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
Citação:
Originally Posted by scottn View Post
Legal!

Ganhaste
Não,
Preciso fazer o código mais genérico (eu só modificou-a para remover as colunas específicas referências).

Última edição por radoulov; em 06/20/2009 12:08.. Motivo: declaração errado:), a saída está correta
  #6 (permalink)  
Old 06-22-2009
hareeshram hareeshram is offline
Usuário
  
 

Join Date: Mar 2007
Localização: Chennai
Posts: 3
Isso foi tão rápido e exato!

Graças scottn e radoulov.
Funcionava bem para mim

Tenho uma ligeira alteração no formato que eu poderia esperar para ambos os requisitos. Espero que você gostaria de sugerir-me.

Exigência 1:

Os nomes de arquivo devem vir com pleno caminhos

Requisito 2:
Após o nome do arquivo (com caminho completo), que as mensagens que estão sendo exibidos (uma mensagem de uma linha), que estão a ser exibido sem qualquer duplicação (a mesma mensagem em linhas consecutivas deve ser removido) por entrada e todos os não duplicada entradas devem ser separted por vírgula (em vez de nova linha "). Contrariamente ao que sucede no caso acima, ambos os arquivos separados por vírgulas e mensagens devem vir na mesma linha.

Mais uma vez muitos muitos agradecimentos por manter o meu espírito em Unix.

Exemplo de entrada
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

Exemplo de entrada:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test.java> 2009-06-18 13:02:28.368
! Mensagem solicitando atualização relatório para o arquivo: Test.java

! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! Mensagem solicitando atualização relatório para o arquivo: Test1.jpf

! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! Mensagem solicitando atualização relatório para o arquivo: Test2.jpf
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MENSAGEM O Java 5 anotação Jpf.Controller precisa de ser adicionado.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! Mensagem mais averbação de Jpf.Action precisa de ser adicionado.

! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Mensagem solicitando atualização relatório para o arquivo: Test3.jpf
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MENSAGEM O Java 5 anotação Jpf.Controller precisa de ser adicionado.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MENSAGEM O Java 5 anotação Jpf.Controller precisa de ser adicionado.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Mensagem irá adicionar importação de org.apache.beehive.netui.pageflow.annotations.Jpf para anotação JPF apoio.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MENSAGEM ABC precisa de ser adicionado.
! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MENSAGEM ABC precisa de ser adicionado.


Saída para requirement1:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
/ fullpath / Test.java
/ fullpath/Test1.jpf

Saída para requirement2:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
/ fullpath/Test2.jpf (separados por tabulação) O Java 5 anotação Jpf.Controller deve ser acrescentada, mais Jpf.Action anotação das necessidades a ser adicionado.
/ fullpath/Test3.jpf (separados por tabulação) O Java 5 anotação Jpf.Controller deve ser acrescentado, irá adicionar importação de org.apache.beehive.netui.pageflow.annotations.Jpf para apoiar JPF anotação, ABC precisa de ser adicionado .
Reply

Marcadores

Tags
log extrato

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 Ligado




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


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 Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0