huangfen2002 发表于 2018-8-19 10:09:45

【一天一个shell命令】文本操作系列-head,tail

  head:打印文件的前10行(默认)
  tail:   打印文件的后10行(默认)
  如果你是个典型的开发或者部署人员,是不是觉得开始亲切起来。我们平时用的最多的命令
  


[*]$tail -fcatalina.out
  

  $head
  实例:
  1. 打印head.txt, tail.txt的前10行
  


[*]$head head.txt tail.txt
  

  

==> head.txttail.txt -n +K    从每个文件的第K 字节输出
  
--max-unchanged-stats=N
  
          使用--follow=name, 重新打开一个在N(默认为5) 次迭代后没有改变大小的文件来看它是否被解除连 接或重命名(这是循环日志文件的通常情况)。 由于有inotify,这个选项很少使用。
  
--pid=PID            同 -f 一起使用,当 PID 所对应的进程死去后终止
  
-q                            --quiet, --silent         不输出给出文件名的头
  
--retry                      即使目标文件不可访问依然试图打开;在与参数
  
--follow=name             同时使用时常常有用。
  
-s                        --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations. With inotify and--pid=P, check process P at least once every N seconds.
  
-v                   --verbose always output headers giving file names
  
                     --help 显示此帮助信息并退出
  
                        --version 显示版本信息并退出
  
如果字节数或行数K 的第一个字符是"+",输出从文件开始第K 个项目,否则输出文件
  
最后K 个项目。K 可以使用一下几种单位之一:
  
b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024,
  
GB 1000*1000*1000,G 1024*1024*1024,以及T,P,E,Z,Y。


  解读:
  1. 区别-f 和-F
  借网上一例子:
  窗口1 输入
  


[*]$while [ "true" ] ; do date >>test.log; sleep 1 ; done;
  

  #每隔一秒传入一个日期到test.log
  窗口2 输入
  


[*]$tail -f test.log
  

  窗口3 输入
  


[*]$rm test.log
  

  此时窗口2 则停止打印,而test.log已经重新生成
  如果采用-F的形式,也会重新生成一个新的test.log,但会自动重新读取
  收尾
  tail和head是两个非常常用的命令,熟练掌握方便查看文件内容。两个很简单,也很相似,所以放在一起写出来。


页: [1]
查看完整版本: 【一天一个shell命令】文本操作系列-head,tail