首页 > 解决方案 > 如何在unix中按4行的段将文件分成两部分

问题描述

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

标签: unixawksplit

解决方案


所有你需要的是

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

推荐阅读