如何将一个文本文件分成几个文件,每个文件 100 行?

mes*_*aut 12 shell bash shell-script

我的问题在这里可能很不清楚。我有一个巨大的文本文件,其值看起来像这样

0.00601233
0.000139403
0.000133679
0.000139497
0.000141683
0.000141888
0.000138646
0.000133465
0.000146326
0.000135611
...
Run Code Online (Sandbox Code Playgroud)

我想把它分成几个 100 行的文件。

文件1将有第 1 到 100 行。

文件2将有第 101 到 200 行。

等等...

可能有一种方法可以使用sedor来做到这一点,awk但我对这些工具或正则表达式不够熟悉,无法在这里做我想做的事情。

Mic*_*mer 21

使用split命令

split -l 100 file
Run Code Online (Sandbox Code Playgroud)

默认情况下生成split输出文件xaaxab等,但您可以在末尾指定前缀,并根据需要获得纯数字后缀:

split -d -l 100 file PREFIX 
Run Code Online (Sandbox Code Playgroud)

此命令将生成文件PREFIX01PREFIX02等。该-d选项是 GNU 扩展名,因此并非所有系统都支持它。在这种情况下,或者,您可以在事后使用简单的 shell 循环重命名它们 - 它总是生成按顺序排序的文件名。