序文 コードを書く過程で、必然的にコードに何らかの変更を加えることになります。しかし、変更を加えるときに、変更されたファイルとソース ファイルの違いがわからないことがよくあります。ここでは、テキスト比較を実行するためのテキスト比較ツールが必要です。 経験豊富なプログラマーは、Windows に BeyondCompare という非常に便利なテキスト比較ツールがあることを知っています。しかし、それは有料ソフトウェアであり、多くの一般企業はクラックされたソフトウェアの使用を許可していません。さらに、Windows でのみ利用可能であり、Linux バージョンはありません。 この記事で紹介するテキスト比較方法では、ソフトウェアは必要ありません。Linux コマンドのみが必要です。このコマンドを学習すれば、テキスト比較の方法がわからないという心配はなくなります。 この Linux コマンドは diff コマンドです。 diff は Unix システムにおいて非常に重要なツール プログラムです。これは 2 つのテキスト ファイル間の違いを比較するために使用され、コード バージョン管理の基礎の 1 つです。 まず、基本的なコマンド形式を見てみましょう。 diff [オプション]... ファイル とても簡単です。しかし、選択肢が多すぎるため、自分の人生に疑問を抱くことになるでしょう。今はそれについて心配せずに、まずは最もよく使われるものを学びましょう。結局のところ、時間は賢く使うべきです。 -b - 行内の空白文字の違いを無視します (例: "Hello World!" は "Hello World!!" と同じとみなされます) -B — 空白行を無視する -i - 大文字と小文字の違いを無視 -r —— diff の後にディレクトリを指定すると、サブディレクトリ内のファイルを再帰的に比較します。 テキストを比較する方法を詳しく見てみましょう。 diff コマンドには 3 つの出力形式があります。 (1)通常形式(通常差分) (2)文脈の違い (3)統一差分 これら 3 つの出力形式を例を通して詳しく紹介します。たとえば、ファイル ac があるとします。その内容は次のようになります。 ここで、コピーを作成し、bc という名前を付け、3 行目の小文字の「hello」を大文字の「HELLO」に変更します。 (1)通常形式 通常の形式では、オプションを追加する必要はなく、次のように比較するだけです。 実行後の結果は次のとおりです。 上の図の意味を1行ずつ説明してみましょう。 行: 3c3 最初の 3 は、ファイル ac の 3 行目が変更されたことを示し、次の 3 は、ac が変更されて bc の 3 行目になったことを示します。真ん中の c が具体的な変更点です。 c は変更を表し、その他のタイプには削除を表す d や追加を表す a などがあります。 2行目: < hello world! これは、ac ファイルの 3 行目のコンテンツを削除することを意味します。小なり記号は削除を示します。 3行目: ------ 区切り線 4行目: > HELLO world! これは、bc ファイルに 3 行目の内容を追加することを意味します。ここで、大なり記号は増加を示します。 (2)コンテキスト形式 通常の形式ではプロンプト情報が比較的少ないため、変更された領域をすぐに見つけることができず、変更の詳細を確認するにはファイルを開く必要があることがよくあります。そこで、より多くの情報を提供するために、コンテキスト形式が導入されました。使用コマンドは次のとおりです。 diff -c ac bc このうち、c は context の略で、文脈を意味します。 上図の出力結果の具体的な意味は次のとおりです。 1 行目と 2 行目は、変更前と変更後のファイルと更新時刻を示します。次の *** 1,4 **** は、ac ファイルの 1 行目から 4 行目までの内容を示します。 hello world の前の感嘆符 (!) は、行が変更されたことを示します。行が削除された場合はマイナス記号 (-)、行が追加された場合はプラス記号 (+) になります。次の行も同様の意味を持ちます。 (3)マージ形式 この形式は通常の形式とコンテキスト形式を組み合わせたもので、git diff でも使用される形式です。この形式を使用するコマンドは次のとおりです。 diff -u ac bc 上図の出力結果の詳細な意味は次のとおりです。 1 行目と 2 行目は、変更前と変更後のファイルと更新時刻を示します。末尾の -hello world! は元のファイル ac の内容を参照し、 +HELLO world! は bc の内容を参照します。 上記の 3 つの形式に加えて、もう 1 つのより直感的な方法であるサイドバイサイド形式があります。この表示形式のコマンド形式は次のとおりです。 この形式は並列形式で表示され、非常に直感的で明確です。 3行目には「|」記号があり、この行が変更されたことを示しています。また、先頭文字が「<」の場合は、次のファイルの内容が前のファイルより 1 行少ないことを意味し、「>」の場合は、次のファイルの内容が前のファイルより 1 行多いことを意味します。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Windows で MySQL 5.6 を 5.7 にアップグレードする方法
>>: Vue2.x - アンチシェイクとスロットリングの使用例
目次1. プロジェクトの構築2. Vue3 体験 + Vant 紹介2020年9月18日にvue.j...
目次1. 遭遇した問題2. アイデア3. コード1. 遭遇した問題私たちは皆、mysqldump を...
パスワード強度検証について: [root@mysql mysql]# mysql -uroot -p...
適用シナリオ: iframe ページにスクロール バーがなく、親ウィンドウにスクロール バーが表示さ...
序文1.ベンチマークは、テスト オブジェクトのクラスの特定のパフォーマンス指標の定量的、再現可能、比...
目次分離効果コマンドラインの説明関与する機能分離効果-- 別居前1,2,3,4 -- 別居後1 2 ...
ダウンロード:ステップ 1: ウェブサイトを開きます (ダウンロードするには公式ウェブサイトにアクセ...
Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...
目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...
バージョンアップデートにより、元のユーザーのパスワードフィールドがauthentication_st...
Apache Tomcat は、Java Servlet および Java Server Pages...
大きな落とし穴、Linuxシステムに付属するPythonのバージョンを簡単に削除しないでください1....
原文: http://www.planabc.net/2008/08/05/userdata_beh...
目次1. redo ログ (MySQL ストレージ エンジン InnoDB のトランザクション ログ...
一般的に使用される方法は次の 4 つです。 1.locate()メソッドを使用する一般的な使用法: ...