gpt4 book ai didi

linux - 使用 bash 将列打印到文本

转载 作者:太空宇宙 更新时间:2023-11-04 10:15:05 25 4
gpt4 key购买 nike

我有一个 shell 脚本来打印一列到文本文件:

#!/bin/bash  
for i in `seq 1 1 174492`;
do
for j in `seq 0 100 14000`;
do
echo "$j" >> "depth"
done
done

但是程序运行时间太长。有更好的方法吗?

最佳答案

使用内置的大括号扩展而不是调用 seq,并重定向整个外循环而不是每次内循环迭代打开和关闭文件一次:

for i in {1..174492}  
do
for j in {0..14000..100}
do
echo "$j"
done
done >> "depth"

现在你的开销是循环本身,所以如果这对你来说仍然不够快,那么使用更快的语言:

awk 'BEGIN { 
for (i = 1; i <= 174492; ++i)
for (j = 0; j <= 14000; j += 100) print j
}' >> depth

我在我的系统上测试了它,它用了 8 秒,而 shell 循环用了 2 多分钟。

关于linux - 使用 bash 将列打印到文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46768042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com