如何在Unix中按4行的段将文件分成两部分

时间:2018-06-24 19:25:25

标签: unix awk split

我正在寻找一种将文件一分为二的方法,这里没有找到答案。我有一个大文件(有数百万行),想将它分成两个文件,总是按四行,即前四行(1,2,3,4)放在第一个输出文件中,后四行第(5,6,7,8)行进入第二个输出文件,然后前三行(9,10,11,12)再次进入第一个输出文件,依此类推。我敢肯定会有一种方法-可能使用awk(?),但我无法正确执行...非常感谢!

2 个答案:

答案 0 :(得分:3)

您需要的只是

awk 'NR%4==1{c=!c} {print > ("out"c)}'

看:

$ seq 10 | awk 'NR%4==1{c=!c} {print $0 " > " ("out"c)}'
1 > out1
2 > out1
3 > out1
4 > out1
5 > out0
6 > out0
7 > out0
8 > out0
9 > out1
10 > out1

答案 1 :(得分:1)

另一个awk

awk '{print > "out_"((NR-1)%8>3)}' file