Coloque todo comando sed dentro do aspas duplas
sed -i "s/masculino/$mudacampo/g"
Nesse caso o 'g' nem é necessário, mas so um man sed te diz porque.
--
Flávio do Carmo Júnior aka waKKu
2009/7/6 Marcus Gmail <address@hidden
<mailto:marcus.jabber%40gmail.com>>
>
>
> Boa tarde!
>
> Estou querendo alterar colunas no meu arquivo com o sed, porem nao
> consigo usá-lo com variaveis dentro do loop do for. Segue um exemplo:
>
> #cat arquivo1.txt
>
> 1,masculino, pedrinho
> 2,masculino, joaozinho
> 3,masculino, zezinho
>
> #car arquivo2.txt
> homemvelho
> homemnovo
> homemchato
>
> #for mudacampo in `cat arquivo2.txt`; do sed -i
> s"/masculino/$mudacampo/"g arquivo1.txt; done
>
> #cat arquivo1.txt
> 1,homemvelho, pedrinho
> 2,homemvelho, joaozinho
> 3,homemvelho, zezinho
>
> Existe alguma forma de fazer o sed trabalhar de maneira adequada com
> variaveis? Onde estou errando?
> procurei na internet mas nao achei nada sobre, queria saber de voces
> antes de procurar outra forma de fazer o script.
>
> Abs!
>
>
>
[As partes desta mensagem que não continham texto foram removidas]