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 的末尾