菜鸟笔记
提升您的技术认知

Linux 命令之split(将一个大文件根据行数平均分成若干个小文件)

   把一个 txt 文件导入到 excel 中,但是 excel 单列支持的行数为 1048576,而我需要导入的 txt 文件总共有 

7945674 ,我们无法一次性将整个 txt 文件里面的内容导入到 excel 中,所以,这个时候我们需要对这个

txt 文件做分割,刚开始使用的 sed 命令,我们知道 sed 命令可以查看文件指定行数的内容,然后再利用

管道把想要的数据输入到指定的文件中,命令如下:

sed  -n '100,200p' filename

    这样你就可以查看文件的第 100 行到第 200 行,同样可以把 100 行到 200 行的内容输入到另外一个文件中

这也是文件的一种分割,但是这个操作起来还是比较麻烦的,我们需要知道文件的行数,比如,一个文件比

较大,我们把它导入到 excel 中,1 ~ 1048576,再从 1048577 ~ 2097153 行,以此类推。

 

下面介绍另外一种方式 使用 Linux 的 split 命令:

例如分割 ipcam_fengshui.txt  文件,我们先用  wc -l ipcam_fengshui.txt 读出这个文件有多少行,再利用 split

命令

split -l 1048576 ipcam_fengshui.txt ipcam_

上面这一行命令的意思是,将 ipcam_fengshui.txt 文件分割成若干个文件,每一个文件 1048576 行(-l 1048576) 

,新分割的文件文件名前缀为 ipcam_ ,后缀是两位的字母,后缀在这里我没有指定,默认情况下是两位小写字母

例如:ipcam_ac

我们也可以指定后缀,例如:

split -l 1048576 ipcam_fengshui.txt -d -a 4 ipcam_

在这里-d 表示后缀是数字而不是字母,-a 4 表示数字是 4 位数字

 

 Linux 下合并文件

命令:

cat  temp02.txt >> temp01.txt

表示将 temp02.txt 的内容输入到 temp01.txt 的末尾