xargs 到不同的文件中

发布于 2024-10-10 15:18:16 字数 279 浏览 5 评论 0原文

我有一个 bash 'for 循环' 可以完成我想要的操作

for i in *.data
do
    ./prog $i >dir/$i.bck
done

我可以将其转换为 xargs 构造吗? 我尝试过类似的方法

ls *.data|xargs -n1  -I FILE ./prog FILE >dir/FILE.bck

,但我对“>”的 FILE 右侧有问题

谢谢

I have a bash 'for loop' that does what I want

for i in *.data
do
    ./prog $i >dir/$i.bck
done

Can I turn this into an xargs construct ?
I've tried something like

ls *.data|xargs -n1  -I FILE ./prog FILE >dir/FILE.bck

But I have problems with the FILE rightside of '>'

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖乖哒 2024-10-17 15:18:16

尝试一下(如果您愿意,可以使用 FILE 而不是 %):

find -maxdepth 1 -name '*.data' -print0 | xargs -0 -n1 -I % sh -c './prog % > dir/%.bck'

Give this a try (you can use FILE instead of % if you prefer):

find -maxdepth 1 -name '*.data' -print0 | xargs -0 -n1 -I % sh -c './prog % > dir/%.bck'
心房敞 2024-10-17 15:18:16

GNU Parallel http://www.gnu.org/software/parallel/ 就是为此而设计的任务类型:

ls *.data | parallel ./prog {} '>'dir/{}.bck

恕我直言,这比提供的 xargs 解决方案更具可读性。

观看介绍视频以了解详情:http://www.youtube.com/watch?v=OpaiGYxkSuQ

GNU Parallel http://www.gnu.org/software/parallel/ is designed for this kind of tasks:

ls *.data | parallel ./prog {} '>'dir/{}.bck

IMHO this is more readable than the xargs solution provided.

Watch the intro video to learn more: http://www.youtube.com/watch?v=OpaiGYxkSuQ

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文