Remove uma parte inicial de uma string no tcsh

1

Eu tenho uma variável que armazena "ping_abc", como removo a parte "ping_" para obter apenas "abc"?

Minha abordagem: variável 'test' armazena "ping_abc"

Eu tentei:

echo ${test:0:4}

Mas isso está me dando:

Bad : modifier in $ (4), error

Abordagem da resposta sugerida por @Yaron:

set test = "ping_abc"
echo test | awk -F_ '{print }'
echo ping_abc | awk -F_ '{print }'

o / p:

        //blankspace
 abc

Por que a variável de teste não é truncada?

    
por Ambareesh S J 06.03.2017 / 14:19

2 respostas

2

Em tcsh , você pode usar modificadores "estilo de histórico" : nas expansões de parâmetro:

xenial-vm:~> set test = ping_abc
xenial-vm:~> echo $test
ping_abc
xenial-vm:~> echo ${test:s/ping_//}
abc
xenial-vm:~>

Veja, por exemplo, Substituição do histórico

    
por steeldriver 06.03.2017 / 14:39
0

Você pode usar awk da seguinte maneira:

echo ping_abc | awk -F_ '{print }'

que resultam com:

abc

Explicação sobre os parâmetros awk :

  • -F_ - use _ para o separador do campo de entrada
  • imprime $ 2 - imprime o segundo campo no registro de entrada

Mais informações homem awk

    
por Yaron 06.03.2017 / 14:24