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

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

Re: [shell-script] Trocar linha contendo um valor


From: Tiago
Subject: Re: [shell-script] Trocar linha contendo um valor
Date: Tue, 8 Jun 2004 12:23:07 -0300
User-agent: KMail/1.6.2

Marcio

Segue abaixo uma resposta que o Aurélio me passou a pouco
que fala exatamente o que vc quer 

[]'s

Tia


Em Qua 02 Jun 2004 09:33, Aurelio Marinho Jargas escreveu:
oi tiago,

 --- Tiago <address@hidden> escreveu:

> Preciso fazer o seguinte, ler um arquivo, excluindo determina
> linha nele e no lugar dessa linha, adicionar 3...

você pode fazer um loop com o clássico "while read LINHA",
e com um if, você detecta a linha desejada e coloca as outras
três no lugar dela.

mas tem um comando sed que faz isso, o 'c', de change.


  $ seq 5
  1
  2
  3
  4
  5
 
  $ seq 5 | sed -e '/3/c\' -e 'primeira\' -e 'segunda\' -e 'terceira'
  1
  2
  primeira
  segunda
  terceira
  4
  5

a sintaxe é meio esquisita mas funciona. tem que ter os escapes \ 
depois do c, e depois de cada linha nova, menos da última.
o '/3/' do comando é a linha original que vai ser trocada, no
teu caso vai ser algo como:

  sed -e '/minha string velha/c\' -e 'blablabla\' -e 'blablbal'

ou se teu sed for o 3.02.80 ou mais novo, pode colocar os \n
direto na substituição, assim:


   sed '/minha string velha/ s/.*/primeira\nsegunda\nterceira/'

blz?

falou!


=====
-- 
Aurelio Marinho Jargas, Curitiba, Conectiva
Expressoes Regulares no sabado dia 5, no V FISL
txt2tags v2.0 BETA2 http://txt2tags.sf.net/beta
Viciados ER http://aurelio.net/er/livro/galeria



Em Terça 08 Junho 2004 10:30, Marcio R A Garcia escreveu:
Olá a todos,


Eu uso sed a algum tempo e preciso fazer algo q não estou encontrando 
como, preciso alterar uma linha toda que tem determinado valor, p. ex:


ABC   DEF
DFG
EFR

e quando eu desse o sed procurando a string ABC, substituir por: XXX, 
ficando:

XXX
DFG
EFR

Sem alterar a ordem do arquivo, alguém ja fez isso ??

Sabe me dizer que comando SED faz esse tipo de coisa ou qual comando 
posso usar para isso ?


Desde já obrigado,


[]´s



Marcio


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos





reply via email to

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