假设我有一个变量name
,它持有一些字符串值。
要获取最后n个字符,在bash中我们可以这样写:
$ echo "${name: -n}"
在 ksh
中,有没有相应的方法?我看到了使用 sed
和 awk
的方法,但我想要的是一行或管道解决方案,类似于 bash
来提取最后几个字符。
目前为止,这些都是错误和努力:
AB12 $ name="123456"
AB12 $ echo ${name:(-3)}
ksh: ${name:(-3)}: bad substitution
AB12 $ echo${name:0:-3}
ksh: echo${name:0:-3}: bad substitution
AB12 $ print ${name%?}
12345
AB12 $ echo "some string" | tail -c -1
tail: cannot open input
AB12 $ echo -n "my string discard"| tail -c -1
tail: cannot open input
AB12 $ echo "foo"| cut -c 1-2
fo
AB12 $ echo "foo"| cut -c -2
fo
AB12 $ echo $name
123456
AB12 $ echo "${name: -3}"
ksh: "${name: -3}": bad substitution
我目前在Solaris上 - 如果这有用的话!
var#${var%??}
?? :) - NoobEditor