linux 如何将一个大文件分成几个小文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 如何将一个大文件分成几个小文件相关的知识,希望对你有一定的参考价值。

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。

2、在linux命令行下输入shell指令:split -l 3 test.txt test。

3、最后,按下回车键执行shell指令,此时会看到test.txt被成功拆分为了3个文件。

参考技术A 方法/步骤

1.命令:split,例子:
2.以行数拆分 -l参数:
3.split –l 50 原始文件 拆分后文件名前缀
4.说明:以50行对文件进行拆分,最后一个文件的行数没有50行以实际行数进行分配,比如有一个名为 wlan_date.txt的文件,公有120行,进行拆分:
split -l 50 wlan_date.txt wlan
5.拆分后会生成 wlanaa wlanab wlanac 三个文件,wlanaa wlanab两个文件分别50行,wlanac文件剩下20行
6.以大小拆分 -b参数:split –b 50 原始文件 拆分后文件名前缀
参考技术B 用7z或rar分卷压缩
例如
7z a C.7z B -v100m
将文件或文件夹B分卷压缩为文件名为C的7z分卷压缩包,每卷100mb

如何将实时stdout流拆分成几个文件?

我有一个python脚本,它不断写入文本流到stdout。像这样的东西(genstream.py):

   while 1:
    print (int(time.time()))
    time.sleep(1)

我想要一个启动python脚本的bash脚本,将其输出保存到一组文件中,假设每小时拆分输出以避免创建难以管理的巨大文件。

然后,由相同的bash脚本处理如此创建的文件(即每小时结束时一个),以将值插入数据库并移动到存档文件夹。

我在google / stack overflow(例如split STDIN to multiple files (and compress them if possible) Bash reading STDOUT stream in real-timehttps://unix.stackexchange.com/questions/26175/)中进行了搜索,但到目前为止我找不到任何解决方案。

我也尝试过像这样简单的东西(所以不考虑时间而只考虑行数)

python3 ./genstream.py | split -l5 -

但我没有输出。

我尝试过(命名)管道和三通管的组合,但似乎没有任何效果。

答案

试试这个:

python3 ./genstream.py | while read line; do
  echo "$line" >> split_$(date +%Y-%m-%d-%H)
done

以上是关于linux 如何将一个大文件分成几个小文件的主要内容,如果未能解决你的问题,请参考以下文章

将一个大文件分成若干个小文件方法

如何把一个压缩好的文件,拆分成几个压缩文件?

如何将yaml文件拆分为多个文件?

Linux下使用split按行数进行切割

如何在R中获得更好的性能:一个大文件或几个小文件?

Linux之split拆分文件