编写脚本

时间:2012-07-30 17:23:58

标签: windows bash

我是脚本的新手并且有一些问题。这是路径

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”文件夹名称,它的路径对我来说是隐藏的。所以我必须相应地编写一个脚本

2 个答案:

答案 0 :(得分: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,请尝试使用“查找文件和文件夹”功能。

答案 1 :(得分:0)

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

删除 - 和path之间的空格,使其显示为“-path”。

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

这是“无用的猫” - 你的find命令可以执行追加 - 它更简单,更快一点。

这是cygwin吗?

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