Talk is cheap. Show me the code.
#!/bin/bash
# 变量初始值
original_str='aa.bb.cc'
echo "原始字符串:$original_str"
echo '方法一:变量替换 ==========================================================='
# 将第一个字符 b 替换为 x
new_str=${original_str/b/x}
echo "使用变量替换第一个匹配字符:$new_str"
# 将所有字符 b 替换为 x
new_str=${original_str//b/x}
echo "使用变量替换所有匹配字符:$new_str"
echo '方法二:sed 替换 =========================================================='
# 将第一个字符 b 替换为 x
new_str=$(echo $original_str | sed 's/b/x/')
echo "使用 sed 替换第一个匹配字符:$new_str"
# 将所有字符 b 替换为 x
new_str=$(echo $original_str | sed 's/b/x/g')
echo "使用 sed 替换所有匹配字符:$new_str"
echo '方法三:awk 替换 =========================================================='
# 将第一个字符 b 替换为 x
new_str=$(echo $original_str | awk '{gsub(/b/, "x", $2); print $0}')
echo "使用 awk 替换第一个匹配字符:$new_str"
# 将所有字符 b 替换为 x
new_str=$(echo $original_str | awk '{gsub(/b/, "x"); print $0}')
echo "使用 awk 替换所有匹配字符:$new_str"
这里提供了三种方法:
- 直接通过变量替换
最为简单直接,使用方便,适合简单替换的场景 - 通过
sed
命令替换
支持正则表达式,使用稍微繁琐,功能强大 - 通过
awk
命令替换
使用麻烦,但最为灵活,可以指定替换细节
参考:
(完)
网友评论