我有一个存储“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