【发布时间】:2021-02-28 23:45:01
【问题描述】:
我有数百个 CSV 文件存储在 unix / Linux 目录中。他们的名字遵循以下格式:MMYYY_foo.csv。例如,
072019_foo.csv
122018_foo.csv
我正在尝试使用 Perl 脚本将它们单独编译并转换为 XML。该命令采用./script.pl MMMMYY_foo 的形式,因此在上面的示例中需要执行以下命令:
./script.pl 072019_foo
./script.pl 122018_foo
我不是在 UNIX / LINUX 中为每个文件单独执行 perl 脚本,而是尝试循环遍历文件,将它们传递给 perl 脚本进行编译。在其他来源中进行繁琐的研究后,我得出以下结论......
find . -type -f -name '*.csv' -exec perl script.pl $('-printf "%f\n"') {} \;
但是这不起作用。而是输出多个“.xml”。毫无疑问,文件名(减去路径和扩展名)没有像上面的代码示例那样正确传递给脚本。我尝试了多种变体...
$(-printf "%f\n"')
我知道这就是我的问题所在。在许多情况下,我只是得到多个“.xml”。我觉得我正处于寻找解决方案的风口浪尖。只是我不了解-exec之外的命令行功能的适当性。因此,我正在寻求有关是否有人知道解决方案的任何帮助。
【问题讨论】: