小编GB4*_*444的帖子

Bash脚本按顺序打印文件的X行

我非常感谢你的帮助,可能很简单.

我有一个表(table2.txt),它有一列随机生成的数字,大约有一百万行.

2655087
3721239
5728533
9082076
2016819
8983893
9446748
6607974
Run Code Online (Sandbox Code Playgroud)

我想创建一个重复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
Run Code Online (Sandbox Code Playgroud)

file0.txt的所需输出:

2655087
3721239
5728533
9082076
Run Code Online (Sandbox Code Playgroud)

file1.txt的所需输出:

2016819
8983893
9446748
6607974
Run Code Online (Sandbox Code Playgroud)

这有什么问题,因为我从我的所有文件获得相同的输出(即它们看起来都像file0.txt的所需输出).希望您可以从我的脚本中看到,在第二次迭代期间,即当i = 2时,我希望输出为行5,6,7和8的值.

这可能是一个非常简单的语法错误,如果你能告诉我哪里出错了(或者给我一个不那么麻烦的解决方案,我将不胜感激!)

非常感谢你.

bash awk loops

3
推荐指数
1
解决办法
103
查看次数

标签 统计

awk ×1

bash ×1

loops ×1