微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

shell截取字符串最后两位

Shell是一种命令行解释器,常用于Unix、Linux系统中。在Shell编程中,截取字符串是一项非常常见的操作,而截取字符串的最后两位则是其中一个重要的操作。本文将从多个角度分析Shell截取字符串最后两位的方法以及其应用。一、Shell截取字符串最后两位的方法

在Shell中,截取字符串最后两位的方法有很多种,其中较为常见的有以下几种:

1.使用expr命令

expr是一个用于数学计算的命令,也可以用于字符串处理。我们可以使用expr命令截取字符串最后两位,具体方法如下:

```

str="Hello World!"

last_two=`expr substr "$str" $(expr length "$str" - 1) 2`

echo $last_two

```

其中,substr是expr命令的一个子命令,用于截取字符串。$(expr length "$str" - 1)是用于计算字符串长度减去2的结果,即倒数第二个字符的位置。2代表截取的字符数。

2.使用awk命令

awk是一种文本处理工具,也可以用于字符串处理。我们可以使用awk命令截取字符串最后两位,具体方法如下:

```

str="Hello World!"

last_two=`echo $str | awk '{print substr($0,length-1,2)}'`

echo $last_two

```

其中,substr是awk命令的一个函数,用于截取字符串。$0代表整个字符串,length代表字符串长度,-1代表倒数第二个字符的位置,2代表截取的字符数。

3.使用sed命令

sed是一种流编辑器,也可以用于字符串处理。我们可以使用sed命令截取字符串最后两位,具体方法如下:

```

str="Hello World!"

last_two=`echo $str | sed 's/.*\(..\)$/\1/'`

echo $last_two

```

其中,s是sed命令的一个替换命令,.*代表匹配任意字符,\(..\)$代表匹配最后两个字符并把它们保存在一个匹配组中,\1代表匹配组中的内容

二、Shell截取字符串最后两位的应用

1.获取文件名的后缀名

在Shell编程中,常常需要获取文件的后缀名。我们可以使用Shell截取字符串最后两位的方法获取文件名的后缀名,具体方法如下:

```

filename="test.txt"

suffix=`echo $filename | awk -F . '{print $NF}'`

echo $suffix

```

其中,-F .代表以点号作为分隔符,$NF代表最后一个字段,即文件名的后缀名。

2.根据时间戳获取日期和时间

在Shell编程中,常常需要根据时间戳获取日期和时间。我们可以使用Shell截取字符串最后两位的方法获取日期和时间,具体方法如下:

```

timestamp=$(date +%s)

date_str=`date -d @$timestamp "+%Y-%m-%d %H:%M:%s"`

date=`echo $date_str | awk '{print substr($0,1,10)}'`

time=`echo $date_str | awk '{print substr($0,12,8)}'`

echo $date

echo $time

```

其中,$(date +%s)代表获取当前时间的时间戳,date -d @$timestamp "+%Y-%m-%d %H:%M:%s"代表根据时间戳获取日期和时间,substr和awk命令用于截取日期和时间。

三、

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐