gpt4 book ai didi

linux - 如何使用shell从路径中删除子目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:05 25 4
gpt4 key购买 nike

在 make 文件中,我想从变量中给定的路径中删除一些子目录。我想我可以使用 $(shell ...) 来做到这一点,所以我认为 sed 单行代码或类似代码可以解决问题。不过,任何合适的 make 技术都可以。

变量中包含的路径通常如下所示:

/repo/myrepo/products/foo/prod1/test/gtest/bin/XXX

/repo/myrepo/products/cool_products/bar/prod2/test/gtest/bin

我想去除上面 prod1prod2 之后的所有内容,给出结果:

/repo/myrepo/products/foo/prod1
/repo/myrepo/products/cool_products/bar/prod2

换句话说,去掉所有以 test/gtest 开头的目录,我可以假设它在我将应用它的所有路径中。我一直无法找到一种干净的方法来剥离不同数量的子目录。

最佳答案

sed 's#/test/gtest.*##g'

这将删除从 /test/gtest 到结尾的所有内容。

示例:

AMD$ echo "/repo/myrepo/products/foo/prod1/test/gtest/bin/XXX" | sed 's#/test/gtest.*##g'
/repo/myrepo/products/foo/prod1

关于linux - 如何使用shell从路径中删除子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com