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

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

Re: [shell-script] Erro sed sript


From: Tiago Peczenyj
Subject: Re: [shell-script] Erro sed sript
Date: Tue, 3 Nov 2009 14:17:46 -0200

Ola Bruno,

Vou dar algumas dicas que PODEM ajudar

1) use interpolação de variaveis/strings com aspas duplas

sed "s/${encontrar}/${substituir}/g"

2) use um separador diferente no comando de substituição (util se vc quer
encontrar/substituir uma strings como /path/to/file)

sed "s#encontrar#substituir#"
sed "s|encontrar|substituir|"
sed "s_encontrar_substituir_"

3) use expressões regulares extendidas que evita tanta kriptonita \(\)

sed -r 's/(isso|aquilo)/outra coisa/'

2009/11/3 Bruno Romano Muller <address@hidden>

>
>
> Ola a todos.
>
> Estou fazendo um script que faz build do meu projeto e cria os pacote rpm e
> deb, para isso eu tenho que ter alguns arquivos, como o control para gerar o
> .deb e o .spec para gerar meu pacote rpm, e mais alguns scripts da minha
> aplicaçao como o instalador e o script que fica em /etc/init.d/. Mas preciso
> modificar constantemente esses scripts, so alguns valores, e para evitar de
> ficar alterando toda vez esses arquivos ou gerar o build com arquivos
> errados eu criei esses arquivos e no lugar dos valores, contem mascaras que
> meu script de build vai substituir, assim fazendo o build correto e
> facilitando a troca desses valores.
>
> Meu maior problema esta com o sed, funciona normal e legal todo meu build e
> substituiçao de mascaras mas o sed falha quando preciso substituir um local
> (/etc/prog/exec) ou alguma coisa com espaços(meu prog faz isso e aquilo). Ja
> tentei de varias maneiras com "\" com aspas simples, duplas, simples e
> duplas. jogar tudo para dentro de uma variavel e depois executar essa
> variavel e nada. Mas preciso que os valores venham de enviromnent, se
> puderem me ajudar. Acho que o problema eh somente com a sintaxe que eu nao
> manjo.
>
> segue a funcao que faz esse processo de substituicao.
>
> Nao so muito bom com shell script se puderem me ajudar agradeco.
> O nome do programa pode variar de vez em quando.
>
> (meu teclado esta desconfigurado, desculpem a falta de acento)
> setup_prog()
> {
> count=1
> file=$(echo "${FILES_REPLACE}" | cut -d ":" -f${count})
>
> while [ "${file}" != "" ]
> do
> count_replace=1
> str_aux=$(echo "${VARIABLES_REPLACE}" | cut -d ":" -f${count_replace})
>
> cp "${file}" "${file}_bck"
> while [ "${str_aux}" != "" ]
> do
> str=$(echo "${str_aux}" | cut -d '*' -f1)
> replace=$(echo "${str_aux}" | cut -d '*' -f2)
> sed -e 's/'${str}'/'${!replace}'/g' "${file}" > "${file}_TEMP" # <<--- Aqui
> meu problema
> mv "${file}_TEMP" "${file}"
>
> count_replace=$(expr ${count_replace} + 1)
> str_aux=$(echo "${VARIABLES_REPLACE}" | cut -d ":" -f${count_replace})
> done
> mv "${file}" "${file}_${PROG_NAME}"
> mv "${file}_bck" "${file}"
>
> count=$(expr ${count} + 1)
> file=$(echo "${FILES_REPLACE}" | cut -d ":" -f${count})
> done
> }
>
> Att: Bruno Romano
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


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



reply via email to

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