我有一个源输入 input.txt
a.txt
b.txt
c.txt
我想将这些输入输入到程序中,如下所示:
my-program --file=a.txt --file=b.txt --file=c.txt
所以我尝试使用 xargs ,但没有运气。
cat input.txt | xargs -i echo "my-program --file"{}
它给
my-program --file=a.txt
my-program --file=b.txt
my-program --file=c.txt
但我想要
my-program --file=a.txt --file=b.txt --file=c.txt
任何想法?
原文由 Howard 发布,翻译遵循 CC BY-SA 4.0 许可协议
到目前为止给出的解决方案都没有正确处理包含空格的文件名。如果文件名包含 ‘ 或 “,有些甚至会失败。如果您的输入文件是由用户生成的,您应该为令人惊讶的文件名做好准备。
GNU Parallel 可以很好地处理这些文件名,并为您(至少)提供 3 种不同的解决方案。如果您的程序需要 3 个且仅 3 个参数,那么这将起作用:
或者:
但是,如果您的程序采用命令行中可以容纳的参数数量:
观看介绍视频以了解更多信息: http ://www.youtube.com/watch?v=OpaiGYxkSuQ