首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法可以输入目录中的每个子目录并对具有特定扩展名的文件执行分析?

问是否有一种方法可以输入目录中的每个子目录并对具有特定扩展名的文件执行分析?
EN

Stack Overflow用户
提问于 2020-10-27 19:00:30
回答 1查看 33关注 0票数 0

我有一个目录,有多个子目录。在每个子目录中,都有一个我希望对其执行分析的文件(已经编写的代码)。

对于所有子目录来说,常见的是它们具有相同扩展名的文件,应该对其执行分析。

使用Unix,是否有一种方法可以编写命令:

  1. 对于主目录中的每个子目录,使用具有特定扩展名的文件,并对该文件执行进一步的命令(进一步的命令包括创建一些新的目录和文件)

  1. 对主目录中的所有子目录和其中的文件

重复它。

我将感谢所有的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-27 19:59:54

使用find命令。find . -type f -name '*.txt' -exec prog \{} \;将使用当前目录.中的每个文件的名称和扩展名.txt (即与模式*.txt匹配)执行程序.txt。-type f排除目录(以及管道和设备)。-exec表示执行此命令;\{}将被文件名替换;\;表示命令结束。

如果您的文件名中没有空格、引号或反斜杠,这是绝对有效的。如果是这样的话,它会变得更加棘手:find . -type f -name '*.txt' -print0 | xargs -0 -n1 prog,假设文件名参数位于行尾。-print0意味着输出具有空终止(零字符)的文件,而-0表示输入为空终止。xargs接受它的输入,并对每个以空结尾的单词调用prog。-n1意味着每次调用只使用一个参数;如果程序接受多个文件名作为参数,则可以省略它。如果需要在参数之后插入文本,可以使用-i。

注意:我知道,对于安全的系统外壳脚本来说,出于各种原因使用-exec可能并不可取,但是对于这样的用例来说是可以的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64561235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档