如何在一个行号文件拆分

我想从一个特定的行号拆分一个400k行的日志文件。

对于这个问题,让这个任意数字300k。

有没有一个Linux命令,让我这样做( 脚本内 )?

我知道split可以让我按照大小或行数来分割文件,但这不是我想要的。 我想要一个文件中的第一个300k和第二个文件中的最后一个100k。

任何帮助,将不胜感激。 谢谢!

再次想到这将更适合超级用户或serverfault站点。

 file_name=test.log # set first K lines: K=1000 # line count (N): N=$(wc -l < $file_name) # length of the bottom file: L=$(( $N - $K )) # create the top of file: head -n $K $file_name > top_$file_name # create bottom of file: tail -n $L $file_name > bottom_$file_name 

此外,第二个想法,分裂将在你的情况下工作,因为第一个分裂大于第二个。 分割将input的平衡放入最后的分割,所以

split -l 300000 file_name

将输出xaa线xab和100k线xab ,input400k线。