在Linux的shell编程中,有多种方法可以对字符串进行截取。以下是一些常用的方法:
使用expr命令
```bash
STRING="Hello World"
echo ${STRING:0:5}
```
上述命令将截取字符串的前5个字符并输出。
使用cut命令
```bash
echo "Hello World" | cut -d " " -f 1
```
上述命令将按照空格作为分隔符,截取并输出字符串的第一个字段。
使用awk命令
```bash
echo "Hello World" | awk '{print substr($0, 1, 5)}'
```
上述命令将截取字符串的前5个字符并输出。
使用sed命令
```bash
echo "Hello World" | sed 's/\(.\{5\}\).*/\1/'
```
上述命令将截取字符串的前5个字符并输出。
使用Shell变量扩展
从左向右截取第一个指定字符串后的字符串:
```bash
MYVAR="foodforthought.jpg"
echo ${MYVAR*fo}
```
从右向左截取最后一个指定字符串后的字符串:
```bash
MYVAR="foodforthought.jpg"
echo ${MYVAR%%.*}
```
从左向右截取指定位置后的字符串:
```bash
MYVAR="Hello World"
echo ${MYVAR:0:5}
```
从右向左截取指定位置后的字符串:
```bash
MYVAR="Hello World"
echo ${MYVAR: -5}
```
使用${操作符}进行截取
截取指定位置和长度的字符串:
```bash
str_time='2022-02-01 12:30:58'
date_no=${str_time:0:10}
date_mon=${str_time:5:2}
date_time=${str_time:0-8}
date_hh=${str_time:0-8:2}
```
这些方法可以根据不同的需求选择使用,以达到字符串截取的目的。