[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] extrair parte de um texto
From: |
Vinicius Xavier |
Subject: |
Re: [shell-script] extrair parte de um texto |
Date: |
Fri, 20 Aug 2010 13:15:55 -0700 (PDT) |
Alex,
o que acha dessa solução abaixo? Atende?
cat -n log.txt
1 [20/08/10 00:00:09,405]
2 [20/08/10 00:00:10,192] INFO: @() Database selected
3 java.sql.SQLWarning: Database selected
4 at com.db2.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
5 at com.db2.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
6 at com.db2.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:1923)
7 at com.db2.jdbc.IfxSqliConnect.t(IfxSqliConnect.java:4150)
8 at com.db2.jdbc.IfxSqliConnect.b(IfxSqliConnect.java:2746)
9 at com.db2.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:2620)
10 at com.db2.jdbc.IfxSqli.a(IfxSqli.java:2615)
11 at com.db2.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1800)
12 at com.db2.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1327)
13 at sun.reflect.GeneratedConstructorAccessor39.newInstance(Unknown
Source)
14 at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
15 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
16 [20/08/10 00:00:10,889] INFO: @() </log>
17 [20/08/10 00:00:10,890] INFO: @() <log
realm="SEVERE.channel/192.38.1.230:2233" at="Fri Aug 20 00:10:890 BRT 2010.890">
18 [20/08/10 00:00:10,890] INFO: @() <disconnect>
19 [20/08/10 00:00:10,890] INFO: @() null:0
cat -n log.txt |sed -n '2,12p'
2 [20/08/10 00:00:10,192] INFO: @() Database selected
3 java.sql.SQLWarning: Database selected
4 at com.db2.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
5 at com.db2.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
6 at com.db2.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:1923)
7 at com.db2.jdbc.IfxSqliConnect.t(IfxSqliConnect.java:4150)
8 at com.db2.jdbc.IfxSqliConnect.b(IfxSqliConnect.java:2746)
9 at com.db2.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:2620)
10 at com.db2.jdbc.IfxSqli.a(IfxSqli.java:2615)
11 at com.db2.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1800)
12 at com.db2.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1327)
# imprime uma parte do arquivo baseada nos números das linhas (linhas 8-12,
# inclusive)
sed -n '8,12p' # método 1
Fonte que vi esse comando sed: http://sed.sourceforge.net/sed1line_pt-BR.html
Abs,
Vinícius Xavier
--- Em sex, 20/8/10, Alex <address@hidden> escreveu:
De: Alex <address@hidden>
Assunto: [shell-script] extrair parte de um texto
Para: "Shell-script" <address@hidden>
Data: Sexta-feira, 20 de Agosto de 2010, 16:23
Pessoal, boa tarde.
Preciso pegar uma sequencia de um texto e jogá-lo para outro arquivo.
Tenho esta estrutura de arquivo de log:
[20/08/10 00:00:09,405]
[20/08/10 00:00:10,192] INFO: @() Database selected
java.sql.SQLWarning: Database selected
at com.db2.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
at com.db2.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
at com.db2.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:1923)
at com.db2.jdbc.IfxSqliConnect.t(IfxSqliConnect.java:4150)
at com.db2.jdbc.IfxSqliConnect.b(IfxSqliConnect.java:2746)
at com.db2.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:2620)
at com.db2.jdbc.IfxSqli.a(IfxSqli.java:2615)
at com.db2.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1800)
at com.db2.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1327)
at sun.reflect.GeneratedConstructorAccessor39.newInstance(Unknown
Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
[20/08/10 00:00:10,889] INFO: @() </log>
[20/08/10 00:00:10,890] INFO: @() <log realm="SEVERE.channel/192.38.1.230:2233"
at="Fri Aug 20 00:10:890 BRT 2010.890">
[20/08/10 00:00:10,890] INFO: @() <disconnect>
[20/08/10 00:00:10,890] INFO: @() null:0
Preciso pegar a entrada que se origina das 20/08/10 00:00:09,405 até as
20/08/10 00:00:10,890, como posso faze-lo.
Tentei usar o sed:
sed -n '/^00:00:08/,/^00:00:10/p' arquivo.log > log.txt
mas não funcionou
tentei tambem o grep
grep -E "00:00:08|00:00:10" arquivo.log > log.txt
mas a entrada que não possui o horário ele não pega, então também não consegui
fazer funcionar
se puderem me ajudar, agradeço.
obrigado,
Alex
[As partes desta mensagem que não continham texto foram removidas]