在 tcsh 中删除字符串的初始部分

在 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}'

输出:

        //blankspace
 abc

为什么测试变量不会被截断?

答案1

在中,您可以在参数扩展中tcsh使用“历史样式”修饰符::

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

例如历史替换

答案2

您可以awk按照以下方式使用:

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

结果是:

abc

参数解释awk

  • -F_ - 使用 _ 作为输入字段分隔符
  • print $2 - 打印输入记录中的第二个字段

更多信息人 awk

相关内容