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

У меня есть переменная, хранящая «ping_abc», как удалить часть «ping_», чтобы получить только «abc»?

Мой подход: переменная «test» хранит «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 в 18:04

1 ответ

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

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

, которые появляются с помощью:

abc

Объяснение параметров awk:

-F_ - использовать _ для печати разделителя полей ввода $ 2 - распечатать второе поле во входной записи

Подробнее man awk

0
ответ дан 23 May 2018 в 00:53
  • 1
    Показывает синтаксическую ошибку. – Ambareesh S J 6 March 2017 в 17:27
  • 2
    awk: cmd. line: 1: printf $ 2 awk: cmd. строка: 1: ^ синтаксическая ошибка с ^ указывая на p (rint) – Ambareesh S J 6 March 2017 в 17:28
  • 3
    @AmbareeshSJ Я отредактировал свой ответ, чтобы поддержать как bash, так и tcsh. для tcsh вы должны использовать следующее: echo ping_abc | awk -F_ '{print $ 2}' – Yaron 6 March 2017 в 17:33

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

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