Linux學習筆記3——文件比較

文件比較

cmp命令:兩文件逐字節比較

cmp file1 file2
  1. 功能:逐字節比較兩個文件是否相同

  2. 兩個文件相同時,不給出任何提示

    不同時,打印第一個不同之處

  3. 侷限性:只能比較兩個位於同一機器上的文件

md5sum:散列編碼(不是比較)

md5sum src.tar proto.txt > myfile.log  #將兩個16進制長度的編碼寫入log中,如果有其他人需要比較自己是否下載了正確的程序,只需比較這兩個文件的編碼即可
  1. 常用於比較兩個位於網絡中不同機器上的兩個文件是否相同
  2. 將文件轉換爲統一長度的16個字節長度的編碼

diff:比較文件差別(歷史修改)

diff file1 file2  # normal格式
diff -u file1 file2  #unified格式
  1. 功能:比較兩個文件之間的差別。大於號> 表示要加入的內容,小於號<表示要刪除的內容

  2. normal格式:列出如何將file1轉化爲file2

    file1行號 + 指令 + file2行號 含義
    a(ADD) 增加
    c(Change) 修改
    d(Delete) 刪除

    舉例:diff test.c test1.c

    //test.c 文件
    1. #include<iostream>
    2. #include<stdlib.h>
    3. using namespace std;
    4. 
    5. int main()
    6. {
    7.     for(int i=0;i<5;i++)
    8.     {
    9.         cout<<"test"<<endl;
    10.    }
    11.    return 0;
    12. }
    
    
    //test1.c文件
    1. #include<iostream>
    2. using namespace std;
    3. 
    4. int main()
    5. {
    6.     int test = 0;
    7.     for(int i=0;i<5;i++)
    8.     {
    9.         cout<<"123456"<<endl;
    10.    }
    11.    return 0;
    12. }
    
    
指令 修改方式 含義
2d1 < #include<stdlib.h> file1的第2行刪除後,後面的內容與file2的第1行一致
6a6 > int test = 0; 在file1的第6行之後加入file2的第6行
9c9 < cout<<"test"<<endl; 在file1中刪除這一行
--- 表示分割線,分割線以上爲file1的原有內容
> cout<<"123456"<<endl; 在file2中加入這一行
  1. unified格式

    ~:  test diff -u test.c test1.c
    --- test.c	2020-06-05 11:09:42.000000000 +0800
    +++ test1.c	2020-06-05 11:02:17.000000000 +0800
    @@ -1,12 +1,12 @@
     #include<iostream>
    -#include<stdlib.h>   # 刪除test.c中的這一行
     using namespace std;
     
     int main()
     {
    +    int test = 0;   # 在test.c中加入這一行
         for(int i=0;i<5;i++)
         {
    -        cout<<"test"<<endl;   # 在test.c中刪除這一行
    +        cout<<"123456"<<endl;   # 在test.c中加入這一行
         }
         return 0;
     }
    
    

Vi編輯

偏好設置

修改用戶HOME目錄下的.exrc文件

set number  # 顯示行號
set tabstop=4  # 製表符爲4格

運行時檢查偏好設置:

:set

操作鍵

  1. 移動到指定行:465

  2. 移動到文件尾:$

  3. 移動到行尾$,移動到行首^

  4. 光標移動到配對括號上:%

  5. 撤回u, 重複上次的操作:.

  6. 保存退出:zz 或者:wq

流量控制

終端輸入Ctrl-C後斷流,使用Ctrl-Q恢復

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章