如何在Bash中使用正负索引获取子字符串

Eli*_*Eli 7 unix bash

我想要的很简单.给定一个字符串'这是我的测试字符串',我想将子字符串从第二个位置返回到第二个位置.像: substring 'this is my test string' 1,-1.我知道我可以使用cut从字符串的开头获取东西,但我不知道如何从字符串的末尾轻松计算.救命?

Eli*_*Eli 17

结果我可以很容易地用awk做到这一点如下:

echo 'this is my test string' | awk '{ print substr( $0, 2, length($0)-2 ) }'

  • 请注意,这将返回:`他是我的测试字符串`.输入字符串("g")中的最后一个字符仍然存在.这是因为[substr()]的第3个参数(https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#index-substr_0028_0029-function)指定了*length*期望的输出字符串,而不是索引.因此,我认为这是正确的答案:`echo'这是我的测试字符串'| awk'{print substr($ 0,2,length($ 0)-2)}'` (2认同)