字符串截取

目录

Bash 字符串截取技巧整理。

从开头截取

使用 # 删除最短匹配,## 删除最长匹配:

MYVAR=foodforthought.jpg
echo ${MYVAR##*fo}    # 输出: rthought.jpg (最长匹配删除)
echo ${MYVAR#*fo}     # 输出: odforthought.jpg (最短匹配删除)

记忆法#$ 左边(键盘上),代表从字符串开始处删除。### 长,用于最长匹配。

从末尾截取

使用 % 删除最短匹配,%% 删除最长匹配:

MYFOO="chickensoup.tar.gz"
echo ${MYFOO%%.*}     # 输出: chickensoup (最长匹配删除)
echo ${MYFOO%.*}      # 输出: chickensoup.tar

记忆法% 在键盘上,用于从字符串末尾删除。

按位置和长度提取

EXCLAIM=cowabunga
echo ${EXCLAIM:0:3}   # 输出: cow (从第 0 位开始,取 3 字符)
echo ${EXCLAIM:3:7}   # 输出: abunga

实际应用

file="/data/download/DD0C17E310DDB4143CEAA584DA0917BEBD4FFD1800000000"
echo ${file%/*}       # 输出: /data/download (路径)
echo ${file##*/}      # 输出: DD0C17E310DDB4143CEAA584DA0917BEBD4FFD1800000000 (文件名)

#shell-scripting