一、字符串截取

1.1 使用 ${string:position:length} 语法

string="HelloWorld"
# 从索引 0 开始截取长度为 5 的字符串
substring=${string:0:5}
echo $substring  # 输出: Hello

 ${string:position:length} 使用

1.2 使用 expr substr

string="HelloWorld"
# 从索引 1 开始截取长度为 5 的字符串
substring=$(expr substr "$string" 1 5)
echo $substring  # 输出: Hello

expr substr使用

1.3 使用 cut 命令

string="HelloWorld"
# 提取第 1 到第 5 个字符
substring=$(echo "$string" | cut -c1-5)
echo $substring  # 输出: Hello

cut使用

二、字符串拼接

2.1 使用简单的字符串拼接

string1="Hello"
string2="World"
result="$string1$string2"
echo $result  # 输出: HelloWorld

简单字符串拼接

2.2 使用 printf 格式化

string1="Hello"
string2="World"
result=$(printf "%s%s" "$string1" "$string2")
echo $result  # 输出: HelloWorld

printf格式化输出

三、Tips

        注意事项

  1. 索引从 0 开始【对于 ${string:position:length}】,但 expr substr 的索引从 1 开始。
  2. 在复杂场景中,建议结合正则表达式或 awk 等工具使用。
  3. 拼接时要注意变量引用加双引号,避免特殊字符或空格导致问题。

四、扩展知识

4.1 获取字符串长度

4.1.1 在 Shell 中可以使用 ${#string}来获取字符串的长度

        推荐使用 ${#string},因为它是内置方法,速度最快且最简洁。

string="HelloWorld"
length=${#string}
echo $length  # 输出: 10

${#string}使用方法

4.1.2 使用 expr
string="HelloWorld"
length=$(expr length "$string")
echo $length  # 输出: 10

使用expr

4.1.3 使用 wc -c

wc -c 统计字符数,但需要去掉末尾换行符的影响。

string="HelloWorld"
length=$(echo -n "$string" | wc -c)
echo $length  # 输出: 10
  • -n 参数防止 echo 添加额外的换行符。
  • 如果字符串中包含换行符,此方法会统计换行符。

wc -c

4.1.4 使用 awk
string="HelloWorld"
length=$(echo "$string" | awk '{print length}')
echo $length  # 输出: 10

awk

结语

        感谢您花时间阅读这篇文章,希望其中的内容能为您的技术之路带来启发与帮助。在新的一年里,无论是学习新知识还是攻克技术难题,我都衷心希望您能够勇往直前、不断进步!

        值此新年佳节之际,祝愿您和您的家人身体健康、事业顺利、学业有成!愿技术的力量为我们带来更多美好,也愿您在未来的每一天,都能收获幸福和满足。

        如果您喜欢这篇文章或有任何建议,欢迎留言分享。让我们共同学习,共同成长! 🎉

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐