Mic*_*zek 48
最简单的方法可能是使用headand tail:
$ head -n 1000 input-file > output1
$ tail -n +1001 input-file > output2
Run Code Online (Sandbox Code Playgroud)
这会将前 1000 行input-file放入 into output1,以及从 1001 到结束的所有行output2
小智 25
我认为这split是你最好的方法。
尝试使用该-l xxxx选项,其中 xxxx 是每个文件中所需的行数(默认为 1000)。
-n yy如果您更关心创建的文件数量,则可以使用该选项。-n 2无论每个文件中的行数如何,使用都会将您的文件分成两部分。
您可以使用wc -l filename. 这是带有lines 选项的'wordcount' 命令。
man splitman wcdon*_*sti 15
这是一份工作csplit:
csplit -s infile 1001
Run Code Online (Sandbox Code Playgroud)
将s悄悄地拆分infile,第一部分xx00- 最多但不包括第 1001 行,第二部分xx01- 其余行。
如果您需要不同的输出文件名,例如使用-f和指定前缀,您可以使用这些选项:
csplit -sf piece. infile 1001
Run Code Online (Sandbox Code Playgroud)
产生两个名为piece.00和的文件piece.01
使用智能,head您还可以执行以下操作:
{ head -n 1000 > 1st.out; cat > 2nd.out; } < infile
Run Code Online (Sandbox Code Playgroud)
一种简单的方法来完成问题的要求,在一个命令中:
awk '{ if (NR <= 1000) print > "piece1"; else print > "piece2"; }' bigfile
Run Code Online (Sandbox Code Playgroud)
或者,对于那些真的讨厌输入长而直观的命令的人,
awk '{ print > ((NR <= 1000) ? "piece1" : "piece2"); }' bigfile
Run Code Online (Sandbox Code Playgroud)