zoukankan      html  css  js  c++  java
  • 每天学点Linux-切割命令split

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

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

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

    [root@www ~]# cd /tmp; split -b 300k /etc/termcap termcap
    [root@www 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

    [root@www tmp]# cat termcap* >termcapback
    

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

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

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

    [root@www ~]# tar -cvf - /home | tar -xvf -
    

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

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

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

       具体使用如下所示:

    [root@www ~]# last | tee last.list | cut -d " " -f1
    # 这个范例可以让我们将 last 的输出存一份到 last.list 文件中;
    
    [root@www ~]# ls -l /home | tee ~/homefile | more
    # 这个范例则是将 ls 的数据存一份到 ~/homefile ,同时屏幕也有输出信息!
    
    [root@www ~]# ls -l / | tee -a ~/homefile | more
    # 要注意! tee 后接的文件会被覆盖,若加上 -a 这个选项则能将信息累加。
    

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

  • 相关阅读:
    Java路径问题终于解决方式—可定位全部资源的相对路径寻址
    易学设计模式看书笔记(2)
    js算法:分治法-棋盘覆盖
    [NIO]dawn之Task具体解释
    C#高级编程五十八天----并行集合
    [Swift通天遁地]九、拔剑吧-(12)创建Preview-Transition图像预览界面
    [Swift通天遁地]九、拔剑吧-(11)创建强大的Pinterest风格的瀑布流界面
    [Swift通天遁地]九、拔剑吧-(10)快速创建美观的聊天界面:可发送文字、表情、图片
    [Swift通天遁地]九、拔剑吧-(9)创建支持缩放、移动、裁切的相机视图控制器
    [Swift通天遁地]九、拔剑吧-(8)创建气泡式页面切换效果
  • 原文地址:https://www.cnblogs.com/wxgblogs/p/6864288.html
Copyright © 2011-2022 走看看