我有一个大文件(800.000 条记录),我想将其拆分为每个 20.000 条记录的不同文件。这个我可以,但我的下一个问题是我想知道是否可以自动生成新文件?
示例:file1 包含 800.000 条记录。首先,我从中获取 20000 条记录并移至另一个文件,然后删除\r
字符。
sed -n '1,20000p;20001q' file1 > file1_1
sed -e 's/\r//g' file1_1 > file1
是否可以循环执行某些操作?还是我必须写 40 次?
记录的数量是可变的,今天它包含 800.000 条记录,但明天它可以包含 812.321 条记录中的 789.123 条。我必须用 sed 命令给出一个“结束编号”吗?
谢谢大家的答案!!
您可以尝试使用命令拆分文件
split
。如果您想要文件中有 20k 条记录,则命令将是:如果您想要结果文件的特定前缀,请使用以下命令:
如果您想要结果文件的数字后缀,请使用以下命令:
这些命令将创建一堆文件,每个文件由 20k 行分隔。
要删除
^M
,您可以使用如下循环:这将添加
_unix
到已^M
删除文件的末尾Romeo Ninov 已经给了你The Right Answer™:使用 split。但是要回答关于 的一般情况
sed
,您可以使用以下方法做同样的事情:这会将每组 20000 行保存在一个新文件中。如果您真的想做您的问题所显示的内容并且只保留第 1 20000 行,那么它要简单得多: