如何将一个文本文件拆分为多个 \*.txt 文件?

新手上路,请多包涵

我有一个文本文件 file.txt (12 MB) 包含:

 something1
something2
something3
something4
(...)

Is there a way to split file.txt into 12 *.txt files, let’s say file2.txt , file3.txt , file4.txt , etc.?

原文由 Kris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 632
2 个回答

您可以使用 Linux Bash 核心实用程序 split

 split -b 1M -d  file.txt file

请注意, MMB 都可以,但大小不同。 MB 为 1000 * 1000,M 为 1024^2

如果要按行分隔,可以使用 -l 参数。

更新

a=(`wc -l yourfile`) ; lines=`echo $(($a/12)) | bc -l` ; split -l $lines -d  file.txt file

Kirill 建议的另一种解决方案,您可以执行以下操作

split -n l/12 file.txt

Note that is l not one , split -n has a few options, like N , k/N , l/k/Nr/Nr/k/N

原文由 CS Pei 发布,翻译遵循 CC BY-SA 4.0 许可协议

$ split -l 100 input_file output_file

其中 -l 是每个文件中的行数。这将创建:

  • 输出文件aa
  • output_fileab
  • output_fileac
  • 输出文件
  • ……

原文由 amruta takawale 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题