shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Substituição acima de 9 grupos com sed


From: Bruno Gunter
Subject: Re: [shell-script] Substituição acima de 9 grupos com sed
Date: Fri, 06 Nov 2009 17:06:12 -0200
User-agent: Thunderbird 2.0.0.23 (X11/20090825)

Se os logs forem estes mesmo, você terá que fazer em duas vezes ou inverter a busca, printando só o que não casa com pesquisado. Mas por que não usar o AWK splitando por dois pontos, por exemplo?

Rodrigo wrote:

Boa tarde,

De acordo com a referência do SED [1], "the replacement can contain \n
(n being a number from 1 to 9, inclusive) references".

Sendo assim, como podemos fazer uma substituição quando mais de 9
grupos são considerados?

Por exemplo, eis o que preciso fazer usando o SED:

$ echo "2009-11-06 00:00:00
BRST:161.148.24.173(33728):user@database:[5256]:LOG: duration:
13504.818 ms statement: INSERT INTO mdl_log" | sed -e 's/^\(.\{19\}\)
BR\(S\)\?T:\([0-9.]*\)(\([0-9]*\)):\(.*\)@\(.*\):\[\([0-9]*\)\]:\([A-Z]*\):
duration: \([0-9.]*\) ms statement:
\(.*\)$/\1;\3;\4;\5;\6;\7;\8;\9;\10/'

Isso é, a substituição com o "\10" não funciona, pois ao invés disso
ele considera o grupo "\1" e adiciona a string "0".

[1] http://www.gnu.org/software/sed/manual/sed.html#index-Command-groups-99 <http://www.gnu.org/software/sed/manual/sed.html#index-Command-groups-99>

Antecipadamente agradeço.

--
Atenciosamente,

Rodrigo Hjort
http://agajorte.blogspot.com <http://agajorte.blogspot.com>

2009 : l'Année de la France au Brésil
http://anodafrancanobrasil.cultura.gov.br <http://anodafrancanobrasil.cultura.gov.br>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]