linux:using_diff_and_patch

diff と patch の使い方...🤔

$ diff -u0 --label build.sh --label build.sh --color=auto build.sh.org build.sh

--- build.sh
+++ build.sh
@@ -1 +1 @@
-#!/bin/sh
+#!/bin/sh -x
@@ -161,2 +161,2 @@
-        yum update -y
-        yum install -y epel-release 
+        sudo yum update -y
+        
@@ -164 +164,3 @@
-        if echo $output | grep " 7."; then
+        if echo $output | grep "Fedora"; then
+            OSTYPE=FEDORA
+        elif echo $output | grep " 7."; then
@@ -171,0 +174,4 @@
+        if [ ! "${OSTYPE}" = "FEDORA" ] ; then
+            sudo yum install -y epel-release
+        fi
+        
@@ -187,3 +193,3 @@
-        elif [ "${OSTYPE}" = "CENTOS8" ] || [ "${OSTYPE}" = "CENTOS9" ] ; then
-            dnf -y groupinstall "Development Tools"
-
+        #elif [ "${OSTYPE}" = "CENTOS8" ] || [ "${OSTYPE}" = "CENTOS9" ] ; then
+        elif [ "${OSTYPE}" = "FEDORA" ] || ["${OSTYPE}" = "CENTOS8" ] || [ "${OSTYPE}" = "CENTOS9" ] ; then
+            sudo dnf -y groupinstall "Development Tools"
@@ -195 +201 @@
-        yum -y install git cmake
+        sudo yum -y install git cmake
@@ -198 +204 @@
-        yum -y install libtool autoconf autoheader automake wget go clang patch expat-devel
+        sudo yum -y install libtool autoconf automake wget golang clang patch expat-devel
@@ -506 +512,2 @@
-    git clone https://github.com/litespeedtech/third-party.git
+    git clone --depth 1 https://github.com/litespeedtech/third-party.git
+    patch -p0 < third-party-scripts.patch

※diff の色付き出力は diffutils-3.4 以降の新機能である🤤

$ rpm -qa | grep diffutils

diffutils-3.8-2.fc36.x86_64

GNU diff utilities - News: diffutils-3.4 released [stable] [Savannah]

NEWS

* Noteworthy changes in release 3.4 (2016-08-08) [stable]

** New features

   diff accepts two new options --color and --palette to generate
   and configure colored output.  --color takes an optional argument
   specifying when to colorize a line: --color=always, --color=auto,
   --color=never.  --palette is used to configure which colors are used.
ニュース👀

* リリース 3.4 (2016-08-08) [安定版] の注目すべき変更点

** 新機能😻

   diff は、2 つの新しいオプション --color と --palette を受け入れて、色付きの出力を
   生成および構成します😃 --color は、線をいつ色付けするかを指定するオプションの引数を
   取ります: --color=always、--color=auto、--color=never🤤 --palette を使用して、使用
   する色を構成します🤔

$ diff --help

使用法: diff [OPTION]... FILES
FILES を行ごとに比較します。

長い形式のオプションで必須の引数は、それに対応する短い形式のオプションでも同様に必須です。
      --normal                  通常の diff を出力する (デフォルト)
  -q, --brief                   ファイルが異なるかどうかのみ表示する
  -s, --report-identical-files  両方のファイルが同一であるかどうかのみ表示する
  -c, -C NUM, --context[=NUM]   コンテキスト diff 形式で前後 NUM (デフォルト: 3) 行を表示する
  -u, -U NUM, --unified[=NUM]   ユニファイド diff 形式で前後 NUM (デフォルト: 3) 行を表示する
  -e, --ed                      ed スクリプトを出力する
  -n, --rcs                     RCS 形式の diff を出力する
  -y, --side-by-side            出力を2列にする
  -W, --width=NUM               表示する列を最大 NUM (デフォルト: 130) 列にする
      --left-column             共通行は左側の列のみ表示する
      --suppress-common-lines   共通行の出力を抑止する

  -p, --show-c-function         変更がある C 関数を表示する
  -F, --show-function-line=RE   RE に一致する最も近い行を表示する
      --label LABEL             use LABEL instead of file name and timestamp
                                  (can be repeated)

  -t, --expand-tabs             出力時にタブをスペースに展開する
  -T, --initial-tab             タブで始まる行は、前にタブを置いてそろえる
      --tabsize=NUM             タブ幅を NUM (デフォルト: 8) 列に設定する
      --suppress-blank-empty    空の出力行の前後ではスペースまたはタブを抑止する
  -l, --paginate                pass output through 'pr' to paginate it

  -r, --recursive                 サブディレクトリーを再帰的に比較する
      --no-dereference            don't follow symbolic links
  -N, --new-file                  存在しないファイルを空ファイルとして扱う
      --unidirectional-new-file   存在しない最初のファイルを空ファイルとして扱う
      --ignore-file-name-case     ファイル名の大文字と小文字を区別しない
      --no-ignore-file-name-case  ファイル名の大文字と小文字を区別する
  -x, --exclude=PAT               PAT に一致するファイルを除外する
  -X, --exclude-from=FILE         FILE 内のパターンに一致するファイルを除外する
  -S, --starting-file=FILE        ディレクトリーを比較する時に FILE から始める
      --from-file=FILE1           すべての被演算子と FILE1 を比較する
                                    FILE1 はディレクトリーでもよい
      --to-file=FILE2             すべての被演算子を FILE2 を比較する
                                    FILE2 はディレクトリーでもよい

  -i, --ignore-case               ファイル内容の比較時に大文字と小文字を区別しない
  -E, --ignore-tab-expansion      タブ展開によって発生する違いを無視する
  -Z, --ignore-trailing-space     行末にあるスペースを無視する
  -b, --ignore-space-change       スペース数により生じる違いを無視する
  -w, --ignore-all-space          すべてのスペースを無視する
  -B, --ignore-blank-lines        ignore changes where lines are all blank
  -I, --ignore-matching-lines=RE  ignore changes where all lines match RE

  -a, --text                      すべてのファイルをテキストとして扱う
      --strip-trailing-cr         入力から CR (キャリッジリターン) を除去する

  -D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs
      --GTYPE-group-format=GFMT   GTYPE の入力グループを GFMT で整形する
      --line-format=LFMT          すべての入力行を LFMT で整形する
      --LTYPE-line-format=LFMT    LTYPE 入力行を LFMT で整形する
    これらの書式整形オプションは -D/--ifdef に適用される diff の出力をきれいに
      見えるように制御するために提供されます。
    LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'.
    GFMT でのみ指定できる書式:
      %<  FILE1 からの行
      %>  FILE2 からの行
      %=  FILE1 と FILE2 で共通の行
      %[-][WIDTH][.[PREC]]{doxX}LETTER  printf 書式の LETTER
        LETTER は次の通りです。ただし古いグループでは小文字です:
          F  最初の行番号
          L  最後の行番号
          N  行数 = L-F+1
          E  F-1
          M  L+1
      %(A=B?T:E)  A と B が等しい場合は T、等しくない場合は E
    LFMT でのみ指定できる書式:
      %L  行の内容
      %l  行末にあるすべての種類の改行文字を除いた行の内容
      %[-][WIDTH][.[PREC]]{doxX}n  printf 書式の入力行
    GFMT と LFMT の両方で指摘できる書式:
      %%  %
      %c'C'  単一文字 C
      %c'\OOO'  八進数コード OOO
      C    文字 C (他の文字も同様に表す)

  -d, --minimal            差分の大きさが最小となるように違いを検出する
      --horizon-lines=NUM  差分の前後にある共通部分を NUM 行保持する
      --speed-large-files  巨大なファイルに小さな差分が分散していると仮定する
      --color[=WHEN]       color output; WHEN is 'never', 'always', or 'auto';
                             plain --color means --color='auto'
      --palette=PALETTE    the colors to use when --color is active; PALETTE is
                             a colon-separated list of terminfo capabilities

      --help               このヘルプを表示して終了する
  -v, --version            バージョン情報を表示して終了する

FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'.
  --from-file または --to-file が与えられた場合、FILE に制限はありません。
If a FILE is '-', read standard input.
  終了コードは、入力ファイルが同じ場合は 0、入力ファイルが異なる場合は 1、
問題が発生したときは 2 になります。

Report bugs to: bug-diffutils@gnu.org
GNU diffutils のホームページ: 
General help using GNU software: 

  • linux/using_diff_and_patch.txt
  • 最終更新: 2022/10/01 05:49
  • by ともやん