1

我是脚本新手,有一些问题。这是路径

c:/data/flow/gen/value/foo.txt
c:/data/flow/gen/secondvalue/cat.txt
c:/data/flow/gen/thirdvalue/bar.txt

我必须编写一个脚本来获取文件夹 gen 中的所有 .txt 文件。

我正在写这样的东西。

find - path c:/*/gen/* -name "*.txt" | cat >> output.txt

但我没有得到输出文件中的文件名。有人可以帮我弄这个吗。我只知道“gen”文件夹名称,它的路径对我来说是隐藏的。所以我必须相应地编写一个脚本

4

2 回答 2

0

在您的 -path 之前添加一个或多个目录。

删除 - 和 path 之间的空格,所以它读作“-path”。

在“*.txt”(以空格分隔)之后添加 -print 以方便移植。

这是“对 cat 的无用使用”-您的 find 命令可以执行附加操作-它更简单且速度更快。

这是cygwin吗?

可能需要 \ 转义您的 c:\ - 冒号绝对是内置的 shell,但我不确定在这种情况下这是否重要。

于 2012-07-30T20:15:11.290 回答
0

尝试这个:

find directory -name "*.txt" -print -exec cat '{}' \; > output.txt

-print              # prints the filename
-exec cat '{}'      # cats the file
> output.txt        # puts it all into output.txt

您必须将目录替换为要搜索的目录。这将在 Linux shell 中有效,但在 Windows 中无效。

如果您使用的是 Windows,请尝试使用“查找文件和文件夹”功能。

于 2012-07-30T17:38:05.037 回答