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):
>
> [EMAIL PROTECTED] 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á:
> [EMAIL PROTECTED] 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:
[EMAIL PROTECTED]:/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 @'
[EMAIL PROTECTED]:/tmp/teste$ tree
.
`-- upnp
|-- libigdctrl
| `-- Makefile
`-- libupnp
|-- Makefile
|-- ixml
| |-- Makefile
| `-- doc
| `-- Makefile
|-- threadutil
| `-- Makefile
`-- upnp
|-- Makefile
`-- doc
`-- Makefile
8 directories, 7 files
[EMAIL PROTECTED]:/tmp/teste$ find . -iname Makefile -exec sh -c 'echo @echo \"
SPARSE ATIVO!!!\" > {}' \;
então fiz uma solução:
[EMAIL PROTECTED]:/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 ..."