[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] substituir uma linha por um texto grande
From: |
Eliphas Levy Theodoro |
Subject: |
Re: [shell-script] substituir uma linha por um texto grande |
Date: |
Wed, 21 Nov 2001 14:09:40 -0200 (BRST) |
address@hidden, @ 12:40:
> Pessoal um amigo me respondeu uma pergunta de como substiruit uma
> linha de um arquivo, soh que preciso substitui-la com um grande
> texto entaum preciso querbrar linhas.
>
> exemplo
>
> sed 's/<attribute name="Password">.*/Novo texto q deve ter quebra de
> linha/' arquivo > novoarquivo
Um grande texto? Joga num arquivo. Se é pra substituir a linha inteira, é
fácil.
O comando é sed '/<attribute name=bla>/{r arquivo.txt.novo; D; }'
Mas isso não funcionou aqui. Acho que o sed acha que o nome do arquivo não
acaba no ponto-e-vírgula, então tem que se colocar em várias linhas:
sed '/<att...>/{
r arquivo.txt.novo
D;}' arquivo.txt.velho
Exemplinho:
$ cat tst1
mala
mela
mila
mola
mula
$ cat tst2
lala
$ sed '/mila/{
r tst2
D;}' tst1
----resultado:
mala
mela
lala
mola
mula
----
--
Eliphas
Windows 9x: 32-bit extensions and a graphical shell for a 16-bit patch
to an 8-bit operating system originally coded for a 4-bit microprocessor,
written by a 2-bit company that can't stand 1-bit of competition.
From (no email address) Wed Nov 21 08:22:26 2001
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-8_0_0_1); 21 Nov 2001 16:22:26 -0000
Received: (qmail 63014 invoked from network); 21 Nov 2001 16:22:25 -0000
Received: from unknown (216.115.97.172)
by m2.grp.snv.yahoo.com with QMQP; 21 Nov 2001 16:22:25 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156)
by mta2.grp.snv.yahoo.com with SMTP; 21 Nov 2001 16:22:21 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4])
by perninha.conectiva.com.br (Postfix) with SMTP id 0E1AA38CD8
for <address@hidden>; Wed, 21 Nov 2001 13:22:15 -0300 (EST)
Received: (qmail 25698 invoked by uid 0); 21 Nov 2001 16:19:00 -0000
Received: from verde.conectiva (10.0.2.168)
by burns.conectiva with SMTP; 21 Nov 2001 16:19:00 -0000
Date: Wed, 21 Nov 2001 14:22:59 -0200 (BRST)
X-X-Sender: <verde@verde.conectiva>
To: <address@hidden>
Subject: Re: [shell-script] substituir uma linha por um texto grande
In-Reply-To: <Pine.LNX.4.33L.0111211355310.1051-100000@elisangela.intranet>
Message-ID: <Pine.LNX.4.33L.0111211418330.913-100000@verde.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
X-eGroups-From: # aurelio marinho jargas <address@hidden>
From: # aurelio marinho jargas <address@hidden>
X-Yahoo-Profile: verde6666
@ 21/11, Eliphas Levy Theodoro:
> address@hidden, @ 12:40:
> > Pessoal um amigo me respondeu uma pergunta de como substiruit uma
> > linha de um arquivo, soh que preciso substitui-la com um grande
> > texto entaum preciso querbrar linhas.
> >
> > exemplo
> >
> > sed 's/<attribute name="Password">.*/Novo texto q deve ter quebra de
> > linha/' arquivo > novoarquivo
>
> Um grande texto? Joga num arquivo. Se é pra substituir a linha inteira, é
> fácil.
>
> O comando é sed '/<attribute name=bla>/{r arquivo.txt.novo; D; }'
>
> Mas isso não funcionou aqui. Acho que o sed acha que o nome do arquivo não
> acaba no ponto-e-vírgula, então tem que se colocar em várias linhas:
>
> sed '/<att...>/{
> r arquivo.txt.novo
> D;}' arquivo.txt.velho
usa o -e, aí não precisa quebrar linha
(e pode ser d e não D pois o conteúdo do arquivo é jogado direto
na saída padrão)
sed -e '/<attribute name=bla>/{' -e 'r arquivo.txt.novo' -e 'd;}'
ou dá pra usar a pesquisa vazia '//' que é igual a última
pesquisa feita, aí não precisa das chaves:
sed -e '/<attribute name=bla>/r arquivo.txt.novo' -e '//d'
maaaaaaaaaaaaassa. &:)
--
http://verde666.org s/click/^a]/;^[:wq
- [no subject], carloscesario, 2001/11/21
- Re: [shell-script] substituir uma linha por um texto grande,
Eliphas Levy Theodoro <=