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

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

Re: [shell-script] Esse é difícil - procurar uma expressão e altera-la -


From: Édnei Rodrigues
Subject: Re: [shell-script] Esse é difícil - procurar uma expressão e altera-la - varios arquivos
Date: Wed, 5 Nov 2008 09:44:22 -0500

jimmy, muito bom teu script. rapaz, eu tentei de tudo e não consegui nem
chegar perto do que tu fez. Muito bom, muito obrigado  e espero ainda te
ajudar algum dia.

Obrigado ao Flávio pela ajuda e ao que pensaram em responder.

Até mais.

2008/11/5 jimmy <address@hidden>

>   no último comando que lhe mandei era para colocar um
>
> | grep -F "SPARSE ATIVO"
>
> no final para facilitar a visualização das alterações, e caso fosse o
> que está esperando inserir a opção -i no sed para alterar permanentemente.
>
>
> On Wed, Nov 05, 2008 at 09:08:48AM -0500, Édnei Rodrigues wrote:
> > Jimmy, a saída que você fala para inserir o grep é o do find ?
> >
> > 2008/11/5 Édnei Rodrigues 
> > <address@hidden<ednei.felipe.rodrigues%40gmail.com>
> >
> >
> > > Obrigado pelas respostas.
> > > Resultado Flavio:
> > >
> > > ./Makefile
> > > .
> > > ./lib_MSC/Makefile
> > > ./lib_MSC
> > > sed: -e expressão #1, caractere 33: unknown option to `s'
> > > ./lib_PABX/Makefile
> > > ./lib_PABX
> > > sed: -e expressão #1, caractere 33: unknown option to `s'
> > >
> > >
> > >
> > >
> > > Jimmy, já testo o seu!
> > >
> > > 2008/11/5 Flavio Junior <address@hidden <billpp%40gmail.com>>
> > >
> > >> Na real eu acabei esquecendo de por o "-l" do grep no teu find..
> > >>
> > >>
> > >> Erro meu mesmo:
> > >>
> > >> $ for file in $(find . -iname Makefile -exec grep -l "SPARSE ATIVO" {}
> > >> \;);
> > >>
> > >> do
> > >> > DIR=$(dirname $file)
> > >> > sed -i.bkp "s/SPARTE ATIVO/SPARSE ATIVO - $DIR/" $file
> > >> > done
> > >>
> > >> Com o -l o grep vai retornar somente o nome do arquivo.
> > >>
> > >> --
> > >>
> > >> Flávio do Carmo Júnior aka waKKu
> > >>
> > >> 2008/11/5 jimmy <address@hidden<ronaldo_tgz%40yahoo.com.br><ronaldo_tgz%
> 40yahoo.com.br>>
>
> > >>
> > >>
> > >> > On Wed, Nov 05, 2008 at 08:05:10AM -0500, Édnei Rodrigues wrote:
> > >> > > Bom dia lista.
> > >> > > Tinha feito uma modificação em vários Makefile e , burrice,
> esqueci de
> > >> > > inserir na expressão o nome do arquivo.
> > >> > > Deixa eu explicar melhor:
> > >> > >
> > >> > > tenho essa lista de makefile (exemplo):
> > >> > >
> > >> > > [ednei@eng-17 voip]$ find . -name Makefile
> > >> > > ./upnp/libupnp/threadutil/Makefile
> > >> > > ./upnp/libupnp/upnp/doc/Makefile
> > >> > > ./upnp/libupnp/upnp/Makefile
> > >> > > ./upnp/libupnp/ixml/doc/Makefile
> > >> > > ./upnp/libupnp/ixml/Makefile
> > >> > > ./upnp/libupnp/Makefile
> > >> > > ./upnp/libigdctrl/Makefile
> > >> > > ..
> > >> > > ..
> > >> > >
> > >> > > dentro deles está:
> > >> > > [ednei@eng-17 voip]$ find . -iname Makefile -exec grep "SPARSE
> ATIVO"
> > >> {}
> > >> > \;
> > >> > >
> > >> > > @echo " SPARSE ATIVO!!!"
> > >> > > @echo " SPARSE ATIVO!!!!"
> > >> > > @echo " SPARSE ATIVO!!!!"
> > >> > > @echo " SPARSE ATIVO!!!!"
> > >> > > @echo " SPARSE ATIVO!!!"
> > >> > > @echo " SPARSE ATIVO!!!"
> > >> > > @echo " SPARSE ATIVO"
> > >> > > @echo " SPARSE ATIVO!!!!"
> > >> > > @echo " SPARSE ATIVO!!!!"
> > >> > >
> > >> > > Notem que eu inseri essa expressão em cada makefile, mas esqueci
> de
> > >> fazer
> > >> > > isso:
> > >> > >
> > >> > > @echo " SPARSE ATIVO!!! - /upnp/libigdctrl "
> > >> > > @echo " SPARSE ATIVO!!!! - ./upnp/libupnp/upnp/doc/"
> > >> > >
> > >> > > e assim vai....É possível fazer isso ? Pegar o makefile respectivo
> de
> > >> > cada
> > >> > > diretório, inserir naquela expressão o diretório corrente ???
> > >> > >
> > >> > >
> > >> > >
> > >> > > Obrigado pelas respostas.
> > >> > >
> > >> > >
> > >> > > ------------------------------------
> > >> >
> > >> > bom leventei aqui na minha máquina um ambiente para emular o seu
> caso:
> > >> >
> > >> > user@host:/tmp/teste$ echo './upnp/libupnp/threadutil/Makefile
> > >> > ./upnp/libupnp/upnp/doc/Makefile
> > >> > ./upnp/libupnp/upnp/Makefile
> > >> > ./upnp/libupnp/ixml/doc/Makefile
> > >> > ./upnp/libupnp/ixml/Makefile
> > >> > ./upnp/libupnp/Makefile
> > >> > ./upnp/libigdctrl/Makefile' | xargs -i@ sh -c 'path=$(dirname @);
> mkdir
> > >> -p
> > >> > $path; touch @'
> > >> > user@host:/tmp/teste$ tree
> > >> > .
> > >> > `-- upnp
> > >> > |-- libigdctrl
> > >> > | `-- Makefile
> > >> > `-- libupnp
> > >> > |-- Makefile
> > >> > |-- ixml
> > >> > | |-- Makefile
> > >> > | `-- doc
> > >> > | `-- Makefile
> > >> > |-- threadutil
> > >> > | `-- Makefile
> > >> > `-- upnp
> > >> > |-- Makefile
> > >> > `-- doc
> > >> > `-- Makefile
> > >> >
> > >> > 8 directories, 7 files
> > >> > user@host:/tmp/teste$ find . -iname Makefile -exec sh -c 'echo
> @echo \"
> > >> > SPARSE ATIVO!!!\" > {}' \;
> > >> >
> > >> > então fiz uma solução:
> > >> >
> > >> > user@host:/tmp/teste$ find . -iname Makefile -printf "%p %h\n" |
> > >> > while read file path; do sed 's#\(SPARSE ATIVO!*\)"#\1 -
> '"$path"'"#'
> > >> > $file; done
> > >> >
> > >> > isso é para testar; filtre a saída com um grep e se for o que está
> > >> > procurando insira a opção -i no comando sed, "sed -i ..."
> > >> >
>  
>


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



reply via email to

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