1. 程式人生 > >linux 命令-文字比較comm、diff、patch

linux 命令-文字比較comm、diff、patch

本文原創首發於公眾號:程式設計三分鐘

今天學了三個文字比較的命令分享給大家。

comm

comm 命令比較相同的文字

$ cat char
a
b
c
$ cat chardiff
a
d
c

比如,我有兩個檔案charchardiff如上,略有不同,就可以用這個命令輸出。

$ comm char chardiff
        a
b
c
    d
    c

如上,看起來輸出的亂七八糟,他只是把兩個檔案按列把各自特有的輸出,最後再輸出共有的。 所以引數-1代表不輸出第1列,也就是第2列和第3列。-2輸出第1列和第3列,-3輸出第1、2列的。引數比較廢,看起來很費勁。

$ comm -1 char chardiff
    a
d
c
$ comm -12 char chardiff
a

comm命令比較笨,只能針對已經排序過的資料,如果沒有排序過,像abcacb就會識別成僅僅a相同,暫時沒想到比較好的使用場景。

diff

用到git的都知道git diff有多好用,雖然不如視覺化頁面直觀,意在快速便捷。 下面是一個例子,char檔案內容是abcchardiff2內容是bcd

$ diff -c char chardiff2
*** char	2019-09-16 21:40:47.000000000 +0800
--- chardiff2	2019-09-17 00:38:52.000000000 +0800
***************
*** 1,3 ****
- a
  b
  c
--- 1,3 ----
  b
  c
+ d

直接加了-c引數是為了更直觀,感興趣可以自己嘗試去掉-c看看是什麼效果。 *** 1,3 ****--- 1,3 ----代表1到3行,-代表刪除行,+代表增加行,!代表更改行。 diff不僅可以臨時對比兩個檔案之間的差異,但是和下一個命令組合起來才是其真正的用處。

patch 補丁

通常在更新幾百萬行的專案時,如果只有幾行有變化,全部打包過來根本是不可能的,因為它太大了,而且全部拷過來也沒有意義,最大的問題是人力難以對比。 在這之前我們需要生成一個補丁檔案

$ diff -Naur folder1 folder2 > diff_file
$ ls folder1
char chardiff
$ ls folder2
char chardiff ip

得到補丁檔案diff_file之後,發到與foler1版本一模一樣的位置就可以更新成功了!

$ cd folder1
$ patch < diff_file
$ patch < diff_file
patching file chardiff
patching file ip

如果要回滾就加-R引數

$ patch -R < diff_file
patching file chardiff
patching file ip

它的引數如下 -p num :忽略幾層資料夾 -E :如果發現了空檔案,那麼就刪除它 -R :取消打過的補丁

相關推薦

linux 命令-文字比較commdiffpatch

本文原創首發於公眾號:程式設計三分鐘 今天學了三個文字比較的命令分享給大家。 comm comm 命令比較相同的文字 $ cat

20180617_Git常用命令2(statusdifflogreflogresetcat)

padding status reflog cell 傳送門 常用命令 AC HA lin Git常用命令2(status、diff、log、reflog、reset、cat) 感謝廖雪峰老師提供的git教程: 傳送門: https://www.liaox

IC數字前端設計開發20 (Linux命令 --- 檔案比較diff/cmp)

來自:https://blog.csdn.net/wuchunlai_2012/article/details/52402239 diff [options] 原始檔 目標檔案  按行比較兩個檔案,並顯示兩者的區別。  -i 忽略大小寫  -b 不檢查空格字

Linux命令學習:建立刪除檔案資料夾的命令

今天學習了幾個命令,是建立、刪除檔案和資料夾的,在linux裡,資料夾是目錄,下面說下我學習的命令。 建立資料夾【mkdir】   一、mkdir命令使用許可權     所有使用者都可以在終端使用 mkdir

linux 命令系列之使用者與組預設許可權(6)

chown : change file ownership 更改檔案的所屬使用者                 chown  [使用者名稱]   [檔案/目錄]                 chown   user1     /tmp/canglaoshi  

Shell中檔案比較cmpdiffpatch區別

原文地址:http://blog.csdn.net/shanyongxu/article/details/46868089檔案比較所謂的檔案比較,一般設計四個領域1.檢查兩個檔案是否相同,如果不同,找不哪裡不同2.應用兩個檔案的不同之處,使從其中一個回覆另外一個3.使用校驗和

linux命令(三)(mkdirrmdirrmtargzipgrep應有盡有哦!!!)

  1、 mkdir、rmdir mkdir [make directory] rmdir [remove directory] mkdir命令用來建立新的目錄,   rmdir 用來刪除已建立的目錄,這兩個指令的功能不再多加介紹,他們同dos下的md,rd功能和用法都

linux命令:檔案搜尋(locatewhereiswhichfindgrep)

locate(檔案搜尋命令): 1、格式: locate 檔名 2、描述: 在後臺數據庫(/var/lib/mlocate)中按檔名搜尋,速度更快,是因為不用遍歷整個系統。mlocate檔案是定時更新的,在使用locate命令前可以先使用命令 u

Linux命令之統計檔案行數字數字元數-wc

wc(Word Count)命令用來統計檔案內容資訊,包括行數、字元數等 語法:wc [-lwc] fine_name 若不接檔案,則統計標準輸入 #顯示檔案內容資訊,輸出資訊依次是:行數,字數,位元組數,檔名稱 wc filename #顯示一個檔案的行數 wc -l

Linux命令輸出頭(標題)輸出結果排序技巧

1、 Linux命令輸出頭(標題) 在使用Linux命令時,如果命令中有管道“|”,則輸出的資訊中,頭(標題)資訊丟失,要想看每一列代表什麼意思很不方便。 這裡有一個簡單的辦法,通過2條命令疊加,獲取頭和內容。例如ps auxw: $ ps axuw USER      

linux命令--查詢與統計(grepawksortuniqwc)

在做日誌分析時或者配置分析時,通常會遇到查找出符合某一條件的行,並統計,主要應用的就是grep、awk、sort、uniq、wc五個命令 1. grep命令 grep(global search regular expression(RE) and print out th

linux命令大全比較完整

識別 bfs 格式 ssa 所有者 1.5 ext ins resize 轉:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html 最近都在和Linux打交道,感覺還不錯。我覺得Linux相比windows比較麻煩的就是

linux命令文字操作隨筆記

以下是我在學習linux命令的時候隨手記的一些命令: 文字切割: cut -d";" [file] 自定義分割符 -b 按位元組 -c 按字元 echo "123" | cut -c 1 // 按字元切割,取第一個字元 echo "123"

【Git】(2)---checkoutbranchlogdiff.gitignore

常用命令 一、命令      1、checkout 切換分支 git checkout 分支名 #切換分支 #如果在當前分支上對檔案進行修改之後,沒有commit就切換到另外一個分支b, 這個時候會報錯,因為沒有commit的檔案在切換分支之後會不覆蓋。所以Git 報錯提示。 git ch

每天一個linux命令(36):diff 命令

      diff 命令是 linux上非常重要的工具,用於比較檔案的內容,特別是比較兩個版本不同的檔案以找到改動的地方。diff在命令列中列印每一個行的改動。最新版本的diff還支援二進位制檔案。diff程式的輸出被稱為補丁 (patch),因為Linux系

第二十二章 Linux文件比較,文本文件的交集差集與求差:comm命令

調整 得到 指定 顯示 兩個文件 not in 通過 需要 選項 第二十二章 Linux文件比較,文本文件的交集、差集與求差:comm命令 名詞解釋 comm 命令 可以用於兩個文件之間的比較,它有一些選項可以用來調整輸出,以便執行交集、求差、差集操作。 交集:打印兩個文件

每天一點Linux命令文字比較--diff與vimdiff

diff命令 diff命令可以逐行比較文字檔案的內容,並輸出其中的不同。 diff命令的使用方法: diff [option] [file1] [file2] 使用引數: diff命令的使用引數還是挺多的,這裡只列出個人認為比較常用的一些引數,如想檢視更多,可以使用dif

linux查詢命令whichwhereisfind比較解析

which 命令格式 which --help Usage: /usr/bin/which [options] [--] COMMAND [...] Write the full path of COMMAND(s) to standard output. 作用 loc

Linux檔案處理命令 filemkdirgrepddmvdiff

 file       1.  作用       file通過探測檔案內容判斷檔案型別,使用許可權是所有使用者。       2.  格式       file [options]  檔名       3.  [options]  主要引數       -v:

whichwhereisfind等linux查詢命令比較解析

which 命令格式 which --help Usage: /usr/bin/which [options] [--] COMMAND [...] Write the full path of COMMAND(s) to standard output. 作