sub substituição com uma variável

0

Estou tentando remover os primeiros n caracteres de uma string Eu recebo o seguinte erro:

line 5: ${ echo $data | sed -r 's/.{ $index0 }//' }: bad substitution

ao usar este código de dentro de um script bash:

data=${ echo $data | sed -r 's/.{$index}//' }

alguma correção, por favor?

    
por Neo Mosaid 06.04.2017 / 20:59

1 resposta

3

Bem,

  1. A substituição de comandos é $( ... ) , não ${ ... } . Parêntese regular, não chaves.
  2. Você tem $index entre aspas simples, portanto, não será expandido pelo shell. Você precisa de aspas duplas para isso.
  3. Coloque aspas duplas em torno de $data no eco, faz diferença se data contiver espaços em branco ou caracteres glob
  4. No bash, você pode usar apenas a expansão de subcadeia data=${data:$index} para descartar vários caracteres da frente da string.

Sugestão de leitura: link

    
por 06.04.2017 / 21:16

Tags