Linux第七节随笔 diff /uniq /stat

  

linux第七讲(上)
1.diff link
  作用:diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。

    如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
  参数:-a或--text  diff预设只会逐行比较文本文件。
     -c  显示全部内文,并标出不同之处。
      -H或--speed-large-files  比较大文件时,可加快速度。
      -i或--ignore-case  不检查大小写的不同。
      -r或--recursive  比较子目录中的文件。
      -u,-U或--unified=  以合并的方式来显示文件内容的不同。
      -y或--side-by-side  以并列的方式显示文件的异同之处。
      -W或--width  在使用-y参数时,指定栏宽
  语法:diff[参数][文件1或目录1][文件2或目录2]
    diff a.log b.log
      “3c3”表示文件第三行有不同
      "11,12d10"表示第一个文件比第二个文件多了第11和12行
    diff a.log b.log -y -W 50
      并列显示文件具体内容
      “|”表示前后2个文件内容有不同
      “<”表示后面文件比前面文件少了1行内容
      “>”表示后面文件比前面文件多了1行内容
    diff a.log b.log -c
      显示全部文本
      这种方式在开头两行作了比较文件的说明,这里有三中特殊字符:
      “+” 比较的文件的后者比前着多一行
      “-” 比较的文件的后者比前着少一行
      “!” 比较的文件两者有差别的行
    diff a.log b.log -u
      统一格式输出
      它的第一部分,也是文件的基本信息:
      --- log2014.log 2012-12-07 18:01:54.000000000 +0800
      +++ log2013.log 2012-12-07 16:36:26.000000000 +0800
      "---"表示变动前的文件,"+++"表示变动后的文件。
      第二部分,变动的位置用两个@作为起首和结束。
       @@ -1,12 +1,10 @@
      前面的"-1,12"分成三个部分:减号表示第一个文件(即log2014.log),"1"表示第1行,"12"表示连续12行。

      合在一起,就表示下面是第一个文件从第1行开始的连续12行。同样的,"+1,10"表示变动后,成为第二个文件从第1行开始的连续10行。

2.uniq
  作用:过滤重复部分显示文件内容。
  参数:  - c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。
      - d 只显示重复行。
      - u 只显示文件中不重复的各行。
      - n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
      +n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。
      - fn 与- n相同,这里n是字段数。
      - sn 与+n相同,这里n是字符数。
  语法: cat file | sort | uniq -c
    查看文件中具体重复行

3.stat
  作用:获取文件的属性,例如大小,最后的修改时间
  参数: -f 显示了有关文件系统(而非文件)的信息
      -t 显示了完全相同的信息
    语法:stat file -f -t

posted on 2015-02-09 17:30  linuxSu  阅读(345)  评论(0编辑  收藏  举报

导航