成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

linux中diff命令有什么用-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“l(fā)inux中diff命令有什么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“l(fā)inux中diff命令有什么用”這篇文章吧。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、安陸網(wǎng)站維護、網(wǎng)站推廣。

這又是一個文件比較命令,熟練掌握會節(jié)省你很多工作。還記得comm命令嗎?diff比他更加復(fù)雜,好用,不僅能比較文件,還能比較目錄。 當(dāng)一個文件有多個版本時候,或者更多復(fù)雜的文件,目錄比較時,你會期望有一個比comm更有用的命令,diff正是為此而生。

全稱:different file

實例:

文件1: v1.txt


代碼如下:

hello
  world v1_echo
  v1_diff
  v1_comm
 shell is easy!


文件2: v2.txt

代碼如下:

hello world!
v2_echo
 v1_diff
 easy shell!


1.普通比較:
$diff v1.txt v2.txt

代碼如下:

1,2c1,2
 < hello world
 &lt; v1_echo
 ---
 > hello world!
 &gt; v2_echo
 4c4
 < v1_comm
 ---
 > easy shell!


列出比較的區(qū)別,數(shù)字為行數(shù),c是compare

2.一體化輸出:

$diff -u v1.txt v2.txt &gt; version.patch

代碼如下:

-v1_echo
 +hello world!
 +v2_echo
 v1_diff
 -v1_comm
 +easy shell!
 shell is easy!


"+"表示補充的行,"-"表示刪去的行

3. 更新覆蓋v1.txt,注意這里借用了patch

$patch –p1 v1.txt&lt; version.patch

4. 比較v1,v2文件,僅輸出v2的變化

$diff -e v1.txt v2.txt


代碼如下:

 4c
 easy shell!
 .
 1,2c
 hello world!
 v2_echo
 .


5.比較目錄

借用書上一段解釋:

-N 將所有確實的文件視為空文件
-a 將所有文件市委文件文本
-u 生成一體化輸出
-r 遍歷目錄下的所有文件

比較兩個目錄下所有文本信息

$diff –Naur directory1 directory2

除非你確定這兩個目錄基本相同,不然不推薦這么用。

6.工作疲勞后,尤其同時做很多事情的時候,會忘了有沒有做過上傳,或者修改某個目錄下的文件??梢赃@樣:

$diff v1.txt /${dir}

直接比較同名文件,高強度下的工作者相信真有體會。

解讀下—help

太長,截取少部分解讀一下。

代碼如下:

Mandatory arguments to long options are mandatory for short options too.
 --normal                                        output a normal diff (the default)
 -q, --brief                                      report only when files differ
 -s, --report-identical-files               report when two files are the same
 -c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context
 -u, -U NUM, --unified[=NUM]     output NUM (default 3) lines of unified context
 -e, --ed                                          output an ed script
 -n, --rcs                                         output an RCS format diff
 -y, --side-by-side                           output in two columns

FILES 的格式可以是‘FILE1 FILE2'、‘DIR1 DIR2'、‘DIR FILE...'或
‘FILE... DIR'。


解讀:

1.-q –s

-q: 只有兩個不同是,提示“兩個文件不同”

-s: 兩個文件相同時,提示“兩個文件相同”

$diff -qs v1.txt v2.txt

(有點無聊的命令 )

2. –y

按照列的方式輸出,增加了直觀性


代碼如下:

 hello world               | hello world!
 v1_echo                    | v2_echo
 v1_diff                       v1_diff
 v1_comm                   | easy shell!
 shell is easy!               shell is easy!


3. file 后面的格式

可以是1.文件 文件 2.目錄與目錄 3.文件與目錄 4. 目錄與文件
解釋一下,文件與目錄的形式,比較的是該目錄下 與 比較文件同名的文件比較
如:$ diff v1.txt diff/
則實際是v1.txt 與 diff/v1.txt的比較。這是個很常用的功能。
對比comm
就比較文件而言,comm功能比較簡單,但是也很直觀,方便
而diff 提供了更強大,更復(fù)雜的比較方式,還能對比目錄,遍歷目錄。

代碼如下:

用法:diff [選項]... FILES
Compare FILES line by line.
Mandatory arguments to long options are mandatory for short options too.
      --normal                  output a normal diff (the default)
  -q, --brief                   report only when files differ
  -s, --report-identical-files  report when two files are the same
  -c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context
  -u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context
  -e, --ed                      output an ed script
  -n, --rcs                     output an RCS format diff
  -y, --side-by-side            output in two columns
  -W, --width=NUM               output at most NUM (default 130) print columns
      --left-column             output only the left column of common lines
      --suppress-common-lines   do not output common lines

  -p, --show-c-function         show which C function each change is in
  -F, --show-function-line=RE   show the most recent line matching RE
      --label LABEL             use LABEL instead of file name
                                  (can be repeated)

  -t, --expand-tabs             expand tabs to spaces in output
  -T, --initial-tab             make tabs line up by prepending a tab
      --tabsize=NUM             tab stops every NUM (default 8) print columns
      --suppress-blank-empty    suppress space or tab before empty output lines
  -l, --paginate                pass output through `pr' to paginate it

  -r, --recursive                 recursively compare any subdirectories found
  -N, --new-file                  treat absent files as empty
      --unidirectional-new-file   treat absent first files as empty
      --ignore-file-name-case     ignore case when comparing file names
      --no-ignore-file-name-case  consider case when comparing file names
  -x, --exclude=PAT               exclude files that match PAT
  -X, --exclude-from=FILE         exclude files that match any pattern in FILE
  -S, --starting-file=FILE        start with FILE when comparing directories
      --from-file=FILE1           compare FILE1 to all operands;
                                    FILE1 can be a directory
      --to-file=FILE2             compare all operands to FILE2;
                                    FILE2 can be a directory

  -i, --ignore-case               ignore case differences in file contents
  -E, --ignore-tab-expansion      ignore changes due to tab expansion
  -Z, --ignore-trailing-space     ignore white space at line end
  -b, --ignore-space-change       ignore changes in the amount of white space
  -w, --ignore-all-space          ignore all white space
  -B, --ignore-blank-lines        ignore changes whose lines are all blank
  -I, --ignore-matching-lines=RE  ignore changes whose lines all match RE

  -a, --text                      treat all files as text
      --strip-trailing-cr         strip trailing carriage return on input

  -D, --ifdef=NAME                output merged file with `#ifdef NAME' diffs
      --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT
      --line-format=LFMT          format all input lines with LFMT
      --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT
    These format options provide fine-grained control over the output
      of diff, generalizing -D/--ifdef.
    LTYPE 可以是‘old'、‘new'或‘unchanged'。GTYPE 可以是 LTYPE 的選擇
    或是‘changed'。
    GFMT (only) may contain:
      %<  lines from FILE1
      %>  lines from FILE2
      %=  lines common to FILE1 and FILE2
      %[-][WIDTH][.[PREC]]{doxX}LETTER  printf-style spec for LETTER
        LETTERs are as follows for new group, lower case for old group:
          F  first line number
          L  last line number
          N  number of lines = L-F+1
          E  F-1
          M  L+1
      %(A=B?T:E)  if A equals B then T else E
    LFMT (only) may contain:
      %L  contents of line
      %l  contents of line, excluding any trailing newline
      %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number
    Both GFMT and LFMT may contain:
      %%  %
      %c'C'  the single character C
      %c'\OOO'  the character with octal code OOO
      C    the character C (other characters represent themselves)

  -d, --minimal            try hard to find a smaller set of changes
      --horizon-lines=NUM  keep NUM lines of the common prefix and suffix
      --speed-large-files  assume large files and many scattered small changes

      --help               display this help and exit
  -v, --version            output version information and exit

  FILES 的格式可以是‘FILE1 FILE2'、‘DIR1 DIR2'、‘DIR FILE...'或
      ‘FILE... DIR'。
If --from-file or --to-file is given, there are no restrictions on FILE(s).
如果 FILE 是‘-',則由標準輸入讀取內(nèi)容。
如果輸入相同,則退出狀態(tài)為 0;1 表示輸入不同;2 表示有錯誤產(chǎn)生。


以上是“l(fā)inux中diff命令有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文標題:linux中diff命令有什么用-創(chuàng)新互聯(lián)
分享地址:http://jinyejixie.com/article40/ddejho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計搜索引擎優(yōu)化、建站公司、網(wǎng)站內(nèi)鏈關(guān)鍵詞優(yōu)化、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
金寨县| 罗甸县| 军事| 桐梓县| 蒙自县| 盐亭县| 奎屯市| 孙吴县| 临汾市| 昌宁县| 秦皇岛市| 景谷| 石门县| 齐齐哈尔市| 望江县| 泾阳县| 缙云县| 新野县| 江川县| 格尔木市| 即墨市| 玛多县| 汾西县| 灌南县| 武穴市| 内江市| 广宁县| 叙永县| 通许县| 确山县| 七台河市| 嵊州市| 平山县| 北川| 禄丰县| 昆明市| 汤阴县| 都兰县| 昌邑市| 平凉市| 福州市|