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命令用于截取日期和时间 。
【shell截取字符串最后两位】三、
推荐阅读
- python如何输出字符串对齐?
- python过滤字符串中不属于指定集合中字符的类实例
- python字符串编码识别模块chardet简单应用
- Java字符串加换行符
- python使用chardet判断字符串编码的方法
- 剪映可以截取音乐的视频吗?
- python文件读写操作与linux shell变量命令交互执行的方法
- Python中处理字符串之isalpha方法的使用
- python判断字符串怎么使用纯数字?
- python如何提取字符串?