我需要创建一堆字母排列,然后是数字并将其放入文件中。我有一堆嵌套的for循环,如下所示,然后我将它回显到文件中,但这非常慢,可能是一个小时或更长时间(我懒得想多久)。我怎么能更快地做到这一点,我认为缓慢的部分是我多次打开和关闭文件。
for a in {a..z}
do
for b in {a..z}
do
for c in {a..z}
do
for i in {1..100}
do
echo "$a$b$c$i" >> permutations
done
done
done
done
是的,我知道Bash不是最好的语言,但这是我必须使用的。
有什么想法吗?
答案 0 :(得分:6)
Bash brace expansion可以执行此操作:
echo {a..z}{a..z}{a..z}{1..100} > permutations
如果您想在新行上进行每个排列,可以添加替换:
echo {a..z}{a..z}{a..z}{1..100} | sed -e "s/\ /\n/g" > permutations