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

如何用Linux的sed命令删除路径最后分隔符后的内容

使用sed实现路径回退(移除最后一个/后的内容)

要实现移除路径字符串中最后一个/之后的所有内容,用以下sed命令即可:

echo "/home/directory/hello/world" | sed 's/\/[^/]*$//'

命令说明

  • 正则表达式\/[^/]*$的作用:
    • \/:匹配路径中的斜杠(需转义,避免与sed的分隔符冲突)
    • [^/]*:匹配任意数量的非斜杠字符
    • $:锚定到行尾,确保只匹配最后一个斜杠及其后续内容
  • s///是sed的替换语法,把匹配到的内容替换为空字符串,即可得到回退一级的路径。

测试示例

输入字符串:/home/directory/hello/world
执行命令后输出:/home/directory/hello

如果路径本身以斜杠结尾(比如/home/directory/),执行该命令会得到/home,这和执行cd ..的效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:31:34