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中不包括斜杠)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |