gpt4 book ai didi

linux - 在所有子目录中的特定文件上运行脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:35 24 4
gpt4 key购买 nike

我编写了一个脚本 (foo),它对输入文件中的文本进行了简单的 sed 替换。我有一个包含大量子目录(a/b1、a/b2 等)的目录 (a),这些子目录都具有相同的子目录(c 等)并包含一个同名文件 (d)。所以大致的结构是:

a/
-b1/
--c/
---d
-b2/
--c/
---d
-b3/
--c/
---d

我想在树中的每个文件 (d) 上运行我的脚本。不幸的是,以下内容不起作用:

sudo sh foo a/*/c/d

如何在这样的 bash 命令中使用通配符?我是否必须使用具有特定最大深度和最小深度的 find,还是有更优雅的解决方案?

最佳答案

您的示例中的通配符扩展应该有效,不需要查找。我假设 a b 和 c 只是一些通用文件名以简化问题。您的任何文件夹/文件是否包含空格?

如果你这样做:

ls -l a/*/d/c

您是否已列出所需的文件?如果是这样,那么这就是您处理脚本文件中的 $* 的方式。介意与我们分享吗?

如您所见,通配符扩展有效

$ ls -l a/*/c/d
-rw-r--r-- 1 user wheel 0 15 Apr 08:05 a/b1/c/d
-rw-r--r-- 1 user wheel 0 15 Apr 08:05 a/b2/c/d
-rw-r--r-- 1 user wheel 0 15 Apr 08:05 a/b3/c/d

关于linux - 在所有子目录中的特定文件上运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43421835/

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