这里的用例是我想获取一组文件,如*
,并在一个循环中与它们一起构建arglists,N
。例如,bash shell脚本:如何将参数列表分组为N个项目?
$ ls
a.jpg
b.jpg
v.jpg
z.jpg
123.jpg
1234.jpg
N
这里是两个,我想运行例如, command a.jpg b.jpg
,command v.jpg, z.jpg
等
我该怎么办?
for file in *; do
command [???]
done
它不必使用for循环。希望有一个我不知道的UNIX实用程序,它能够重新排列arg列表。或者我也许应该用tr
和IFS
做一些事情。
以下是我能做到这一点,如果我的文件是可预见的用数字命名,或者如果我只是想用数字而不是水珠扩展的文件进行操作(本例中有N
= 3):
for number in {0..10..3}; do
echo $number $((number + 1)) $((number + 2))
done
这收益率...
0 1 2
3 4 5
6 7 8
9 10 11
我在写这个当我注意到“一个新的答案......” - 你击败了我。 – Floris
我知道这一点。为什么我忘记了'xargs'可以做到这一点? 'xargs'甚至可以并行化脚本。对我的imagemagick脚本来说也是非常有用的。 –
@StevenLu这不适用于文件名中的空格,但在特定情况下这可能不是问题。看到我的答案没有'xargs'的选择。 – janos