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

前端之家收集整理的这篇文章主要介绍了Bash:从变量(文件路径)中删除第一个目录组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要从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中不包括斜杠)。

原文链接:https://www.f2er.com/bash/388570.html

猜你在找的Bash相关文章