动态循环目录中的文件

动态循环目录中的文件

我有一个很大的文件列表:

i18n/
    editor.utf8
    editor_fr.utf8
    editor_ko.utf8
    editor_ge.utf8
    ...etc. (dozens of these)

我想运行一个实用程序,我们称之为它fizzbuzz,它将“输入文件”和“输出文件”作为其程序参数。调用它的一个例子是:

fizzbuzz editor.utf8 editor.properties

或者:

fizzbuzz editor_fr.utf8 editor_fr.properties

因此,对于每次调用,我想要输入文件是 下的不同文件i18n/,并且我希望输出文件是同名文件,但具有不同的文件扩展名 ( .properties)。如果输出/属性文件已经存在,它应该被完全覆盖。

我如何编写脚本,以便可以在 中的fizzbuzz每个.utf8文件上运行i18n/,并为每个文件指定一个具有相同名称的输出,只是一个.properties文件?

迄今为止我最好的尝试:

for FILE in i18n
do
    fizzbuzz FILE FILE.properties
done

只是创建一个单独的FILE.properties文件。

答案1

如果所有文件都位于 i18n 的下一级,则不需要 find 方法。

更改 for 命令以使用:

对于 i18n/* 中的文件

此外,在引用变量时,变量前面必须带有 $。

我的建议是在第一次执行 for 循环时使用安全命令,否则可能会造成很大的损害。例如,只需列出它看到的 FILE 值,并显示它将运行的命令:

for FILE in i18n/*
do
    echo "fizzbuzz $FILE $FILE.properties"
done

当你满意这就是你想要的,然后去掉回声。

如果您希望它遍历多个目录,这个答案不会很好地工作,但我将按照最初的问题,它看起来可能是一个平面目录。

相关内容