Posso usar & variável de sed para fazer a operação dentro de $ ()? [duplicado]

0

Não tenho certeza se a declaração abaixo pode ser feita colocando & dentro de $ () para que cada time & é substituído por 1,2,3,4 e 1 é adicionado a ele.

echo 1 2 3 4 | tr ' ' '\n' | sed "s/.*/$(echo expr 1 + &)/"

A declaração acima não funciona

eu recebo a saída:

expr 1 +
expr 1 +
expr 1 +
expr 1 +
    
por munish 10.10.2013 / 01:33

1 resposta

1

Se você não precisar usar sed para isso, aqui estão algumas outras opções:

$ echo 1 2 3 4 | tr ' ' '\n' | while read f; do let f+=1; echo $f; done
2
3
4
5
$ echo 1 2 3 4 | tr ' ' '\n' | awk '{print $1+1}'
2
3
4
5
$ echo 1 2 3 4 | tr ' ' '\n' | perl -lne '$i=$_+1; print $i'
2
3
4
5

sed é um editor de fluxo, não é suposto fazer expressões matemáticas.

    
por 10.10.2013 / 02:32

Tags