Удалите начальную часть строки в tcsh

У меня есть переменная, хранящая "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

Почему тестовая переменная не становится усеченной?

1
задан 6 March 2017 в 17:04

2 ответа

В tcsh, можно использовать "стиль истории" : модификаторы в расширениях параметра:

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

Посмотрите, например Замена Истории

2
ответ дан 7 December 2019 в 13:36

Можно использовать awk следующим образом:

echo ping_abc | awk -F_ '{print $2}'

, которые заканчиваются с:

abc

Объяснение приблизительно awk параметры:

  • -F_ - использование _ для разделителя
  • поля ввода печатает $2 - печатают второе поле во входной записи
[еще 1110] информация человек awk

0
ответ дан 7 December 2019 в 13:36

Другие вопросы по тегам:

Похожие вопросы: