У меня есть переменная, хранящая "ping_abc", как я удаляю "ping _" часть для получения просто "abc"?
Мой подход: переменный 'тест' хранит "ping_abc"
Я попробовал:
echo ${test:0:4}
Но это дает мне:
Bad : modifier in $ (4), error
Подход к предложенному ответу @Yaron:
set test = "ping_abc"
echo test | awk -F_ '{print $2}'
echo ping_abc | awk -F_ '{print $2}'
o/p:
//blankspace
abc
Почему тестовая переменная не становится усеченной?
В tcsh
, можно использовать "стиль истории" :
модификаторы в расширениях параметра:
xenial-vm:~> set test = ping_abc
xenial-vm:~> echo $test
ping_abc
xenial-vm:~> echo ${test:s/ping_//}
abc
xenial-vm:~>
Посмотрите, например Замена Истории
Можно использовать awk
следующим образом:
echo ping_abc | awk -F_ '{print $2}'
, которые заканчиваются с:
abc
Объяснение приблизительно awk
параметры: