linux取字符串的最后一位,linux – 在ksh中获取字符串的最后n个字符

假设我有一个包含一些字符串值的变量名

要获取最后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上 – 如果这有帮助!

解决方法:

你可以使用它,比如n = 2(我们将在嵌套扩展中使用2个问号):

$var="this is my var"

$echo "${var#${var%??}}"

ar

说明

这是一个嵌套扩展.

扩展${var %% ??}嵌入在扩展${var#}中. ${var#string}扩展将从匹配’string’的变量的开头切断任何内容.所以我们在这个例子中说,从变量的开头删除任何匹配${var %% ??}的东西.

就其自身而言,${var %% ??}匹配示例中变量的“this is my v”,因为%%扩展匹配变量末尾的最长匹配.在这种情况下,两个正则表达式?

标签:linux,shell,string,solaris,ksh

来源: https://codeday.me/bug/20190725/1530348.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值