加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash:从变量(文件路径)中删除第一个目录组件

发布时间:2020-12-15 19:48:53 所属栏目:安全 来源:网络整理
导读:我需要从Bash中的变量中删除一个目录(最左边)。我找到了如何删除所有路径或使用dirname和其他方法,但它正在删除右侧的所有或一个路径组件;它不会帮助我。所以你更好地了解我需要什么,我会写一个例子: 我有一个/ project / hello.c,一个/项目/ docs / REA
我需要从Bash中的变量中删除一个目录(最左边)。我找到了如何删除所有路径或使用dirname和其他方法,但它正在删除右侧的所有或一个路径组件;它不会帮助我。所以你更好地了解我需要什么,我会写一个例子:

我有一个/ project / hello.c,一个/项目/ docs / README,…我想删除那个一个命令后,我有项目/ hello.c和project / docs / README,。 .. ..

您可以使用以下任何一种:
x=a/b/c/d
y=a/
echo ${x#a/}
echo ${x#$y}
echo ${x#*/}

所有三个回波命令产生b / c / d;当然,您可以以任何您选择的方式使用该值。

当您知道在编写脚本时需要删除的名称时,第一个是适当的。

当您有一个包含您需要删除的前缀的变量(小变体:y = a; echo $ {x#$ y /})时,第二个是适当的。

第三个是最通用的 – 它删除任何前缀到第一个斜杠的任意前缀。我惊喜地发现,当我在MacOS X 10.6.6上用bash(3.2版)测试时,*非常贪婪地工作 – 我会把它放在太多的Perl和regex工作上(因为当我想到它,*在shell中不包括斜杠)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读