![从命令行执行shell脚本](https://linux22.com/image/86479/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%A7%E8%A1%8Cshell%E8%84%9A%E6%9C%AC.png)
我有一个 perl 脚本,可将文件转换为 json 格式并将输出写入单独的目录。它接受 2 个参数,文件名和输出目录。该脚本需要在以特定扩展名(例如 .abc)结尾的多个文件上运行。
我想找到扩展名为 .abc 的特定目录中的每个文件,并针对它运行我的脚本。我正在尝试从命令行运行
find "path to directory" -name '*.abc' -exec ./ConvertFile {} "output_directory"
命令返回find: missing argument to '-exec'
我对 perl 和 shell 脚本都很陌生。我可以在每个单独的文件上运行脚本。但是,任何给定目录中可能有数十个文件,并且需要即时转换它们,因为原始文件经常更改。谁能告诉我我的命令行输入有什么问题吗?谢谢
答案1
您必须以 结束-exec
通话\;
。这应该可以解决问题。
find "path to directory" -name '*.abc' -exec ./ConvertFile {} "output_directory" \;