You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shell脚本中合并两个字符串并去除重复字符

合并路径字符串并去除重复前缀的实现方法

针对你给出的场景,这里提供几种在shell环境下的实用实现方式:

方法一:前缀匹配判断(最直接)

利用shell的模式匹配功能,检查第二个字符串是否是第一个的完整子路径,按需选择直接复用或拼接:

str1="/home/username"
str2="/home/username/project"

if [[ "$str2" == "$str1"/* ]]; then
    str3="$str2"
else
    # 处理非前缀场景,自动避免双斜杠问题
    str3="$str1/${str2#/}"
fi

echo "$str3"

逻辑说明:

  • [[ "$str2" == "$str1"/* ]] 精准判断str2是否以str1加斜杠开头,确保是完整的路径前缀匹配
  • 匹配成功时直接用str2作为结果,因为它已经包含了str1的全部内容
  • 不匹配时,用${str2#/}去掉str2开头的斜杠,再和str1拼接,避免出现//这类无效分隔符

方法二:路径规范化工具(适配复杂路径)

如果路径包含相对路径(比如../)这类复杂结构,可以用realpath工具自动规范化合并结果:

str1="/home/username"
str2="/home/username/project"
str3=$(realpath -m "$str1/$str2")
echo "$str3"

-m参数允许工具处理不存在的路径,最终输出的是去重冗余后的标准路径。

内容的提问来源于stack exchange,提问作者YonghanKim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:30:24