字符串操作 #
一、字符串删除 #
1.1 从左边删除 #
bash
#!/bin/bash
path="/usr/local/bin/python"
# 删除最短匹配
echo ${path#*/} # 输出: usr/local/bin/python
# 删除最长匹配
echo ${path##*/} # 输出: python
1.2 从右边删除 #
bash
#!/bin/bash
path="/usr/local/bin/python"
# 删除最短匹配
echo ${path%/*} # 输出: /usr/local/bin
# 删除最长匹配
echo ${path%%/*} # 输出: (空)
二、字符串替换 #
bash
#!/bin/bash
str="hello world world"
# 替换第一个匹配
echo ${str/world/WORLD} # 输出: hello WORLD world
# 替换所有匹配
echo ${str//world/WORLD} # 输出: hello WORLD WORLD
# 替换开头
echo ${str/#hello/HELLO} # 输出: HELLO world world
# 替换结尾
echo ${str/%world/WORLD} # 输出: hello world WORLD
三、大小写转换 #
bash
#!/bin/bash
str="Hello World"
# 转小写(Bash 4.0+)
echo ${str,,} # 输出: hello world
# 转大写(Bash 4.0+)
echo ${str^^} # 输出: HELLO WORLD
# 首字母大写
echo ${str^} # 输出: Hello world
# 使用tr命令
echo "$str" | tr '[:upper:]' '[:lower:]'
echo "$str" | tr '[:lower:]' '[:upper:]'
四、字符串分割 #
bash
#!/bin/bash
# 使用IFS分割
str="apple,banana,cherry"
IFS=',' read -ra fruits <<< "$str"
for fruit in "${fruits[@]}"; do
echo "水果: $fruit"
done
# 使用cut
echo "$str" | cut -d',' -f1 # 输出: apple
# 使用awk
echo "$str" | awk -F',' '{print $1}'
五、字符串去空格 #
bash
#!/bin/bash
str=" hello world "
# 使用xargs
trimmed=$(echo "$str" | xargs)
echo "[$trimmed]"
# 使用sed
trimmed=$(echo "$str" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
echo "[$trimmed]"
# 使用参数扩展
trimmed="${str#"${str%%[![:space:]]*}"}"
trimmed="${trimmed%"${trimmed##*[![:space:]]}"}"
echo "[$trimmed]"
六、总结 #
6.1 操作符速查 #
| 操作符 | 说明 | 示例 |
|---|---|---|
| $ | 删除左边最短 | $ |
| $ | 删除左边最长 | $ |
| $ | 删除右边最短 | $ |
| $ | 删除右边最长 | $ |
| $ | 替换第一个 | $ |
| $ | 替换所有 | $ |
6.2 下一步 #
你已经掌握了字符串操作,接下来让我们学习 字符串截取!
最后更新:2026-03-27