Use sed replace com o número da linha da variável

0

Este é o meu comando sed :

while ...;
do sed -r "${counter}s/^\S+ /$line /g" $in > $out;
..
..
done

Infelizmente este comando não está fazendo nada quando chamado de dentro de um script / loop bash. Então, pensei em verificar se as variáveis estão sendo resolvidas da maneira certa:

do echo ´sed -r "${counter}s/^\S+/$line/g" $in > $out´;

que imprimiu isso no console:

sed -r <line number>/^\S+/<replace pattern>/g <infile> > <outfile>

Ao executar este mesmo comando (sem o ´) do console, eu recebo isto:

sed: -e expression #1, char 8: unterminated s' command

Acho que isso ocorre porque o ' está ausente no padrão.

Então, como eu combino aspas duplas (para variáveis de resolução no comando sed) e aspas simples (para completar o padrão de busca / substituição) ao chamar isso de um script bash?

    
por entenbein 28.10.2015 / 10:42

1 resposta

0

Bem, isso é estranho. O redirecionamento para o arquivo de saída não aconteceu, pelo menos não com as substituições esperadas. Um cp <infile> <outfile> com o seguinte comando sed replace inplace funciona como um encanto ....

Obrigado pela sua ajuda!

    
por 28.10.2015 / 11:57

Tags