![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread |
Avaliação:
|
Display Modes |
|
|
|
||||
|
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.. |
|
||||
|
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.. |
| Bits Awarded / Cobrado para radoulov para este Post | |||
| Data | Usuário | Comentário | Valor |
| 06-22-2009 | hareeshram | Graças à solução inteligente! | 200 |
|
|||||
|
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 |
|
||||
|
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 . |
![]() |
| Marcadores |
| Tags |
| log extrato |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|