【发布时间】:2018-09-28 14:54:53
【问题描述】:
非常感谢您对一些可能非常简单的事情的帮助。
我有一个表 (table2.txt),其中有一列随机生成的数字,大约有一百万行长。
2655087
3721239
5728533
9082076
2016819
8983893
9446748
6607974
我想创建一个重复 10,000 次的循环,因此对于迭代 1,我将第 1 到 4 行打印到文件 (file0.txt),对于迭代 2,我打印第 5 到 8 行 (file1.txt) , 等等。
到目前为止,我所拥有的是:
#!/bin/bash
for i in {0..10000}
do
awk 'NR==((4 * "$i") +1)' table2.txt > file"$i".txt
awk 'NR==((4 * "$i") +2)' table2.txt >> file"$i".txt
awk 'NR==((4 * "$i") +3)' table2.txt >> file"$i".txt
awk 'NR==((4 * "$i") +4)' table2.txt >> file"$i".txt
done
file0.txt 的所需输出:
2655087
3721239
5728533
9082076
file1.txt 的所需输出:
2016819
8983893
9446748
6607974
这出了点问题,因为我从所有文件中获得了相同的输出(即它们看起来都像 file0.txt 的所需输出)。希望您可以从我的脚本中看到,在第二次迭代期间,即当 i=2 时,我希望输出为第 5、6、7 和 8 行的值。
这可能是一个非常简单的语法错误,如果您能告诉我哪里出错了(或者给我一个不那么麻烦的解决方案!),我将不胜感激!
非常感谢。
【问题讨论】: