每天学点Linux-切割命令split

  一种常见的需求是,有一个比较大的文件,需要把它切割成比较小的几个文件,在Linux系统中你就可以使用Split命令了。Split命令可以将一个大的文件按照文件大小或者行数切割成小文件。Split命令的使用方式如下:

plit [-bl] file PREFIX
选项与参数:
-b  :后面可接欲分割成的文件大小,可加单位,例如 b, k, m 等;
-l  :以行数来进行分割。
PREFIX :代表前导符的意思,可作为分割文件的前导文字。

  范例一:我的 /etc/termcap 有七百多K,若想要分成 300K 一个文件时?

[[email protected] ~]# cd /tmp; split -b 300k /etc/termcap termcap
[[email protected] tmp]# ll -k termcap*
-rw-r--r-- 1 root root 300 Feb  7 16:39 termcapaa
-rw-r--r-- 1 root root 300 Feb  7 16:39 termcapab
-rw-r--r-- 1 root root 189 Feb  7 16:39 termcapac

  如上所示,分割后的文件以 xxxaa, xxxab, xxxac 等方式来创建小文件的!
  范例二:如何将上面的三个小文件合成一个文件,档名为 termcapback

[[email protected] tmp]# cat termcap* >termcapback

  使用cat命令,将数据流重定向就可以了。
  范例三:使用 ls -al / 输出的信息中,每十行记录成一个文件

[[email protected] tmp]# ls -al / | split -l 10 - lsroot
[[email protected] tmp]# wc -l lsroot*
  10 lsrootaa
  10 lsrootab
   6 lsrootac
  26 total

  注意:在管道命令当中,常常会使用到前一个命令的 stdout作为这次的stdin , 某些命令需要用到文件名 (例如 tar) 来进行处理时,该stdin与stdout可以利用减号 "-" 来替代, 举例来说:

[[email protected] ~]# tar -cvf - /home | tar -xvf -

  注意在上面的例子使用到了‘>‘,‘>‘会将数据流传送给文件或者设备,因此可以使用>将命令输出写入到文件或者设备。当然写入到设备后就无法继续利用这个数据流。如果需要继续使用这个数据流可以使用tee命令对流进行双向重定向。tee命令的示意图如下所示:

  tee 会同时将数据流分送到文件去与屏幕 (screen);而输出到屏幕的,其实就是 stdout ,可以继续处理。

tee [-a] file
选项与参数:
-a  :以累加 (append) 的方式,将数据加入 file 当中!

  具体使用如下所示:

[[email protected] ~]# last | tee last.list | cut -d " " -f1
# 这个范例可以让我们将 last 的输出存一份到 last.list 文件中;

[[email protected] ~]# ls -l /home | tee ~/homefile | more
# 这个范例则是将 ls 的数据存一份到 ~/homefile ,同时屏幕也有输出信息!

[[email protected] ~]# ls -l / | tee -a ~/homefile | more
# 要注意! tee 后接的文件会被覆盖,若加上 -a 这个选项则能将信息累加。

  tee 可以让 standard output 转存一份到文件内并将同样的数据继续送到屏幕去处理! 这样除了可以让我们同时分析一份数据并记录下来之外,还可以作为处理一份数据的中间缓存盘记录之用!

时间: 2024-10-14 11:33:44

每天学点Linux-切割命令split的相关文章

Linux基础命令---split

split 将一个大文件切割成较小的文件,默认情况下每1000行就会切割一次.分割后的文件,默认以xaa.xab.xac等命名.用户亦可以指定名字的前缀,例如指定前缀test,那么分割后的文件是testaa.testab.testac等. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法       split [OPTION]- [INPUT [PREFIX]   2.选项列表 选项 说明 --help 显示帮助文档 -

Linux常用命令--split

1.功能:将大文件分割成多个小文件 2.用法:split [参数] 文件 [name] 3.参数: -b:按照byte大小划分文档: -d:使用数字作为后缀. -l:值为每一输出档的列数大小. 4.例子 [[email protected] ~]$ head -10 /etc/passwd>/home/mysql/passwd.txt 例1:将/home/mysql/passwd.txt按照每个文件4行分割 [[email protected] ~]$ split -4 passwd.txt [

Linux必学的60个命令

Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令. 要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统.不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个.这里把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍.◆ 安装和登录命令:login.shutdown.ha

Linux必学的60个命令 (转)

Linux必学的60个命令 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, 就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统. 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个.这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分

Linux必学的60个命令【转载】

Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存  [转载地址]http://blog.chinaunix.net/uid-16728139-id-3154272.html 自己留着,用得着. Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统

linux命令---split

大文件拆分命令split: 下面的列表中给出了该命令最为常用的几个命令行选项: 选项 描述 -l 指定行数,每多少分隔成一个文件,缺省值为1000行. -b 指定字节数,支持的单位为:k和m -C 与-b参数类似,但切割时尽量维持每行的完整性 -d 生成文件的后缀为数字,如果不指定该选项,缺省为字母     /> ls -l    -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2     /> split -b 5k test.ta

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

将一个大文件分成若干个小文件方法 例如将一个BLM.txt文件分成前缀为 BLM_ 的1000个小文件,后缀为系数形式,且后缀为4位数字形式 先利用 wc -l BLM.txt       读出 BLM.txt 文件一共有多少行 再利用 split 命令 split -l 2482 ../BLM/BLM.txt -d -a 4 BLM_ 将 文件 BLM.txt 分成若干个小文件,每个文件2482行(-l 2482),文件前缀为BLM_ ,系数不是字母而是数字(-d),后缀系数为四位数(-a 4

linux常用命令加实例大全

目  录引言    1一.安装和登录    2(一)    login    2(二)    shutdown    2(三)    halt    3(四)    reboot    3(五)    install    4(六)    mount    4(七)    umount    6(八)    chsh    6(九)    exit    7(十)    last    7(十一)    动手练习    7二.文件处理    9(一)    file    9(二)    mkd

Linux重定向命令

linux重定向命令应用及语法  [复制链接] 发表于 2008-12-18 18:24 | 来自  51CTO网页 [只看他] 楼主 1. 标准输入的控制语法:命令 文件将命令的执行结果送至指定的文件中.例如:ls -l > list 将执行“ls -l” 命令的结果写入文件list 中.语法:命令>! 文件将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖.例如:ls -lg >! list 将执行“ls - lg” 命令的结果覆盖写入文件list 中.语法:命令>&am