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

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

Re: [shell-script] Alterar apenas uma unica ocorrencia no texto


From: Diego
Subject: Re: [shell-script] Alterar apenas uma unica ocorrencia no texto
Date: Mon, 12 Jul 2004 10:50:41 -0300 (ART)

Hey !
 
Bom Aurelio, não sei se estou fazendo algo errado, mas não funcionou do jeito 
que vc me passou.... deve ser pq o processamento mental é lento e está em fase 
de aprendizado hehehe.... ai vai a parte do codigo onde preciso disso....
 
#!/bin/bash
 
...
 
 #ALTERA NOMES DA LISTA
        4) echo -n "Nome a ser modificado: "
           read NOMEANTIGO #NOME A SER ALTERADO
           echo -n "Novo nome: "
           read NOMENOVO #NOVO NOME
           FILE=/dsk1/users/diego/dados.sh
           TMPFILE=/dsk1/users/diego/dadostemp.tmp
           echo "Entradas com a string a ser alterada no arquivo: "
           cat dados.sh | grep $NOMEANTIGO 
           if [ $? -ne 0 ]; then 
              echo " #### NENHUMA OCORRENCIA ENCONTRADA #### "
              break
           else
           sleep 1
           CONDICAO=0
           while [ $CONDICAO -eq 0 ]
           do
                sed  "1,/$NOMEANTIGO/ s/$NOMEANTIGO/$NOMENOVO/" $FILE >$TMPFILE
                if [ $? -ne 0 ]; then
                        exit
                fi
                diff dados.sh dadostemp.tmp
                echo -n "Deseja realizar esta alteracao (s/n) ?  "
                read OPCAO
                case $OPCAO in
                        s) mv $TMPFILE $FILE
                           cat $FILE | grep $NOMEANTIGO
                           if [ $? -ne 0 ]; then
                                echo " ### SEM MAIS ALTERACOES ### "
                                sleep 1
                                clear
                                break
                           fi
                           echo "Deseja continuar (s/n) ?  "
                           read OPCAO
                           case $OPCAO in
                                s) ;;
                                n) CONDICAO=1;;
                           esac;;
                        n) echo "   ### SEM ALTERACOES ###   "
                           sleep 1
                           clear
                           break;;
                esac
           done
           fi
           ;;

 ....
 
##########################################################
 

Aurelio Marinho Jargas <address@hidden> wrote:
oi diego,

--- Diego <address@hidden> escreveu: 

> Preciso saber como fazer para alterar apenas uma unica
> ocorrencia de "velho" por "novo" em um arquivo.
> Eu estou usando:
> sed -e "s/velho/novo/" arquivo

troque para:

  sed '1,/velho/  s/velho/novo/' arquivo

  #    ^endereço  ^comando

o extra que coloquei é o endereço, que indica para que esta
substituição fique restrita à area que começa na primeira
linha do arquivo (1) até a primeira linha que tiver a
string "velho".

falou!


=====
-- 
Aurelio Marinho Jargas, Curitiba, Conectiva
txt2tags v2.0 beta3 http://txt2tags.sf.net/beta/


      
      
            
_______________________________________________________
Yahoo! Mail agora com 100MB, anti-spam e antivírus grátis!
http://br.info.mail.yahoo.com/


---------------------------------------------------------------------
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
---------------------------------------------------------------------



Yahoo! Grupos, um serviço oferecido por: São Paulo Rio de Janeiro Curitiba 
Porto Alegre Belo Horizonte Brasília 

---------------------------------
Links do Yahoo! Grupos

   Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
  
   Para sair deste grupo, envie um e-mail para:
address@hidden
  
   O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do 
Yahoo!. 

 

[]'s

Diego Rozzini Pires
ICQ 253999357
MSN Messenger address@hidden
                
---------------------------------
Yahoo! Mail agora ainda melhor: 100MB, anti-spam e antivírus grátis!

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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