字符串操作 #

一、字符串删除 #

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