• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Quản trị hệ thống Linux OS

Cách so sánh hai file văn bản trên Linux Terminal

@admiz by @admiz
08/05/2021
in Linux OS, Quản trị hệ thống
0
Cách So Sánh Hai File Văn Bản Trên Linux Terminal 6094f046969db.png

Nếu muốn xem sự khác nhau giữa hai file văn bản, hãy sử dụng lệnh diff. Hướng dẫn này sẽ chỉ cho bạn cách sử dụng lệnh diff trên Linux và macOS.

  • Sử dụng tính năng so sánh tài liệu trong Word 2010
  • Cách so sánh dữ liệu trên 2 cột Excel
  • Cách lọc dữ liệu trùng nhau trên 2 sheet Excel

Lệnh diff so sánh hai file văn bản và tạo một danh sách các điểm khác biệt giữa hai file này. Để chính xác hơn, nó tạo một danh sách các thay đổi trong file thứ nhất để khớp với file thứ hai. Biết được điều này bạn sẽ hiểu đầu ra lệnh diff dễ dàng hơn. Lệnh diff được thiết kế để tìm điểm khác nhau giữa các file code nguồn và tạo đầu ra có thể đọc và hoạt động trên các chương trình khác như lệnh patch.

Nào hãy bắt đầu phân tích hai file. Thứ tự các file trên dòng lệnh xác định file lệnh diff coi là file đầu tiên và file thứ hai. Trong ví dụ bên dưới, alpha1 là file đầu tiên và alpha2 là file thứ hai. Cả hai file đều chứa bảng chữ cái ngữ âm nhưng file thứ hai, alpha 2 đã thực hiện một số chỉnh sửa để hai file không giống nhau.

Chúng ta có thể so sánh các file sử dụng lệnh sau. Gõ diff, dấu cách, tên file thứ nhất, dấu cách, tên file thứ hai và nhấn Enter.

diff alpha1 alpha2

Chạy lệnh diff để tìm sự khác biệt giữa hai file

Đọc đầu ra như thế nào? Mỗi khác biệt giữa hai file được liệt kê theo thứ tự trong một cột và được dán nhãn. Nhãn này chứa các số ở hai bên và chữ cái ở giữa, ví dụ 4c4. Con số đầu tiên là số dòng trong alpha1 và con số thứ hai là số dòng trong alpha2. Chữ cái ở giữa có nghĩa như sau:

  • c: Dòng trong file đầu tiên cần được thay đổi để khớp với dòng trong file thứ hai.
  • d: Dòng trong file đầu tiên cần xóa để khớp với file thứ hai.
  • a: Nội dung bổ sung cần được thêm vào file thứ nhất để trùng khớp với file thứ hai.

Ví dụ, 4c4 có nghĩa là dòng thứ tư trong file alpha1 phải được thay đổi để giống với dòng thứ 4 file alpha2. Đây là sự khác biệt đầu tiên giữa hai file mà diff tìm thấy.

Các dòng bắt đầu bằng tham chiếu đến file đầu tiên và các dòng bắt đầu với > tham chiếu đến file thứ hai. Dòng cho biết từ Delta là nội dung dòng thứ tư trong file alpha1. Dòng > Dave cho biết từ Dave là nội dung dòng thứ 4 trên file alpha2. Tóm lại, bạn cần thay từ Detal bằng từ Dave trên dòng thứ 4 trong file alpha1 để hai file giống nhau.

Thay đổi tiếp theo là 12c12, tương tự như vậy, chúng ta có thể thấy dòng 12 của file alpha1 chứa từ Lima nhưng dòng 12 trong alpha2 lại chứa từ Linux.

Thay đổi thứ ba cho ta biết có một dòng đã bị xóa ở file alpha2. Nhãn 21d20 xác định cần xóa dòng 21 ở file đầu tiên để hai hai file giống nhau. Dòng cho biết nội dung dòng cần xóa từ alpha1.

Sự khác biệt thứ tư là 26a26,28. Nhãn này cho biết trong file alpha2 có thêm ba dòng khác với file alpha1. Số dòng 26, 28 được phân tách bằng dấu phẩy để thể hiện phạm vi dòng. Trong ví dụ này, phạm vi từ dòng 26 đến dòng 28. Bạn có thể hiểu nhãn này cần thêm ba dòng trong alpha2 vào alpha1 để hai file giống nhau. Các dòng cần thêm vào chứa các từ Quirk, Strange và Charm.

Nếu chỉ muốn biết hai file văn bản có giống nhau hay không, hãy sử dụng tùy chọn -s.

diff -s alpha1 alpha3

Nhận định hai file có giống nhau không

Bạn có thể sử dụng tùy chọn -q để xem hai file có khác không.

diff -s alpha1 alpha3

Nhận định hai file có khác không

Và nếu có nhận được kết quả khác nhau, tùy chọn này cũng không nêu rõ sự khác biệt giữa hai file.

Tùy chọn -y sử dụng bố cục khác để hiển thị các điểm khác nhau giữa hai file. Khi sử dụng tùy chọn này, bạn có thể sử dụng thêm tùy chọn -w để giới hạn số cột hiển thị cho kết quả dễ đọc. Dưới đây là lệnh diff tạo kết quả hiển thị hai bên và giới hạn trong 70 cột.

diff -y -W 70 alpha1 alpha2

Sử dụng tùy chọn -y

File đầu tiên trên dòng lệnh được hiển thị bên trái và file thứ hai được hiển thị bên phải. Các dòng trong từng file được hiển thị cạnh nhau. Có các ký tự chỉ báo cùng với các dòng này trong alpha2 biểu thị thay đổi, xóa hoặc thêm nội dung.

  • |: Dòng thay đổi ở trong file thứ hai.
  • <: d b x trong file th hai.></:>
  • >: Dòng thêm vào trong file thứ hai và file thứ nhất không có.

Nếu thích tóm tắt ngắn gọn những thay đổi này, sử dụng tùy chọn suppress-common-lines để lệnh diff chỉ hiển thị sự thay đổi, thêm hoặc xóa.

diff -y -W 70 --suppress-common-lines alpha1 alpha2

Sử dụng tùy chọn suppress-common-lines

Thêm màu sắc cho lệnh

Một tiện ích khác được gọi là colordiff thêm màu sắc để làm nổi bật kết quả đầu ra lệnh diff giúp người xem dễ nhìn sự khác biệt.

Để cài đặt tiện ích này, sử dụng lệnh apt-get nếu sử dụng Ubuntu hoặc bản phân phối dựa trên Debian khác. Trên các bản phân phối Linux khác sử dụng công cụ quản lý gói của distro đó.

sudo apt-get install colordiff

Sử dụng colordiff như diff.

Sử dụng colordifff

Thực tế, colordiff là một wrapper (trình bao bọc) cho diff, do đó, bạn vẫn có thể sử dụng các tùy chọn diff với colordiff.

Sử dụng các tùy chọn của diff cho colordiff

Cung cấp một số bối cảnh để dễ dàng tìm điểm khác biệt

Để tìm một số thay đổi giữa hai file văn bản, thay vì liệt kê hết, bạn có thể yêu cầu diff cung cấp một số bối cảnh cụ thể. Có hai cách để thực hiện điều này và cho ra cùng một kết quả, hiển thị một số dòng trước và sau mỗi dòng thay đổi.

Cách đầu tiên là sử dụng tùy chọn -c.

colordiff -c alpha1 alpha2

Sử dụng tùy chọn -c

Đầu ra diff này có một tiêu đề, tiêu đề liệt kê tên hai file và số lần chỉnh sửa của nó. Có dấu hoa thị (*) trước file thứ nhất và dấu gạch ngang (-) trước file thứ hai. Dấu hoa thị và dấu gạch ngang sẽ được sử dụng để chỉ đầu ra của file đó.

Dòng có dấu hoa thị và 1,7 ở giữa cho biết những thay đổi của file alpha1 từ dòng một đến bảy. Chữ Delta được đánh dấu đã thay đổi. Nó có một dấu chấm than (!) cạnh đó và có màu đỏ. Bạn có thể thấy trước và sau chữ đó có ba dòng văn bản không thay đổi, cho biết ngữ cảnh của dòng đó trong file.

Dòng có dấu gạch ngang với 1,7 ở giữa cho biết những thay đổi trong file alpha2. Tương tự như trên, chúng ta thấy từ Dave ở dòng 4 được đánh dấu thay đổi.

Ba dòng văn bản không đổi trước và sau mỗi thay đổi là giá trị mặc định. Bạn có thể chỉ định số dòng này nếu muốn. Để thực hiện điều đó, sử dụng tùy chọn -c với chữ C viết hoa và số dòng muốn hiển thị.

colordiff -C 2 alpha1 alpha2

Chỉ định số dòng bối cảnh

Tùy chọn thứ hai là sử dụng tùy chọn -u.

colordiff -u alpha1 alpha2

Sử dụng tùy chọn -u

Giống với tùy chọn trước, bạn cũng có một tiêu đề trên đầu ra, gồm tên file và số lần thay đổi. Dấu gạch ngang (-) được đặt trước tên của alpha1 và dấu cộng (+) trước tên alpha2. Điều này cho chúng ta biết dấu gạch ngang được sử dụng để chỉ alpha1 và dấu cộng dùng cho alpha2. Bạn có thể thấy trên hình trên có các dấu @ xuất hiện rải rác trong danh sách, nó đánh dấu sự bắt đầu của những thay đổi và dòng nào của mỗi file.

Bạn có thể thấy ba dòng trước và sau dòng được đánh dấu khác nhau, cho biết bối cảnh dòng thay đổi. Dòng từ file alpha1 được bắt đầu bằng dấu gạch ngang, dòng từ file alpha2 bắt đầu bằng dấu cộng. Với tùy chọn này, bạn chỉ mất có 8 dòng để liệt kê sự khác biệt trong khi tùy chọn trên cần đến 15 dòng.

Tương tự như tùy chọn trên, bạn có thể sử dụng tùy chọn -u với chữ U viết hoa để cung cấp số dòng bối cảnh mong muốn.

colordiff -U 2 alpha1 alpha2

Sử dụng tùy chọn -u với chữ U viết hoa

Bỏ khoảng trắng và chữ viết hoa, viết thường

Hãy thử so sánh với hai file khác, test4 và test5 có tên 6 siêu anh hùng.

colordiff -y -W 70 test4 test5

Sử dụng hai file khác

Kết quả cho thấy diff không tìm thấy sự khác biệt nào ở các dòng Black Widow, Spider-Man và Thor. Nó đánh dấu những thay đổi ở dòng Captain America, Ironman và The Hulk.

Vậy ở những dòng này có điểm gì khác nhau? Trong test5 Hulk được viết bằng chữ thường, h, và Captain America có thêm một khoảng trống giữa Captain và America. Vậy ở dòng Ironman, có gì khác biệt ở đây? Bạn không thể nhìn thấy bằng mắt thường sự khác biệt ở dòng này trên hai file. Ở đây chúng có khoảng trắng.

Bạn có thể bỏ qua sự khác biệt cụ thể giữa hai file như:

  • -i : Bỏ qua sự khác biệt trong viết hoa và viết thường.
  • -Z : Bỏ qua khoảng trắng.
  • -b : Bỏ qua những thay đổi về số lượng khoảng trắng.
  • -w : Bỏ qua mọi thay đổi khoảng trắng.

Hãy yêu cầu diff kiểm tra lại hai fille đó, nhưng lần này hãy bỏ qua mọi khác biệt trong viết hoa và viết thường.

colordiff -i -y -W 70 test4 test5

Bỏ qua mọi khác biệt trong viết hoa và viết thường

Dòng The Hulk và the hulk được xem là giống nhau và không được đánh dấu chữ thường h. Tiếp theo hãy thử bỏ qua khoảng trắng bằng lệnh sau:

colordiff -i -Z -y -W 70 test4 test5

Bỏ qua khoảng trắng

Bạn có thể thấy diff không đánh dấu dòng Ironman khác biệt nữa, chỉ đánh dấu dòng Captain America. Bây giờ thử yêu cầu diff bỏ qua sự khác biệt trong viết hoa và viết thường và bỏ qua tất cả các vấn đề về khoảng trắng.

colordiff -i -w -y -W 70 test4 test5

Bỏ qua sự khác biệt trong viết hoa và viết thường và bỏ qua tất cả các vấn đề về khoảng trắng

Bạn có thể thấy hai file giờ đây không có sự khác biệt.

Lệnh diff có nhiều tùy chọn nhưng chủ yếu liên quan đến việc tạo đầu ra để máy có thể đọc được. Những tùy chọn trong các ví dụ trên sẽ giúp bạn theo dõi sự khác biệt giữa hai file dễ dàng hơn.

Chúc các bạn thực hiện thành công!

  • 8 cách kiểm tra nhanh tình trạng website trên Linux
  • Cách cài đặt từ điển trong Linux Terminal
  • Cách cài Edge Chromium trên macOS
  • Cách kiểm tra chính tả trong Linux Terminal
  • Cách click chuột phải trên Mac
  • Hướng dẫn cài đặt Arch Linux cơ bản
Post Views: 212
Previous Post

High memory và Low memory trong Linux là gì?

Next Post

Những ứng dụng quay video màn hình tốt nhất cho Ubuntu

Related Posts

Quicktime Player Logo650 1
macOS

Cách ghép video trên macOS bằng QuickTime Player

26/12/2021
Kali Linux 2021 4 700 1
Linux

Kali Linux 2021.4: Thêm 9 công cụ mới và hỗ trợ tốt hơn cho Apple M1

26/12/2021
Openbsd La Gi 1
Linux

OpenBSD là gì? Đây là mọi thứ bạn cần biết về hệ điều hành này!

26/12/2021
Mac Os Xoa Ung Dung Cai Dat Logo640 1
macOS

Cách gỡ, xóa ứng dụng trên Mac OS

26/12/2021
Tim Thu Vien Anh Photos Library Tren May Mac700 1
macOS

Hướng dẫn tìm thư viện ảnh Photos Library trên máy Mac

26/12/2021
So Sanh Macbook Pro Macbook Air Va Ipad Pro 1
macOS

So sánh MacBook Pro 13 inch với MacBook Air và iPad Pro

26/12/2021
Next Post
Những ứng Dụng Quay Video Màn Hình Tốt Nhất Cho Ubuntu 6094f04091279.png

Những ứng dụng quay video màn hình tốt nhất cho Ubuntu

Bài mới nhất

Cpanel Là Gì Và Hướng Dẫn Sử Dụng Cpanel Hiệu Quả Cho Người Mới 612d235c02794.png

Cpanel là gì và hướng dẫn sử dụng Cpanel hiệu quả cho người mới

13/05/2025
Website Defacement Là Gì Và Cách Khắc Phục Hiệu Quả Cho Website 612d235622440.png

Website Defacement là gì và cách khắc phục hiệu quả cho website

12/05/2025
8 Cách Quản Lý Data Khách Hàng Hiệu Quả Cho Doanh Nghiệp 612d234c2b5ad.jpeg

8 cách quản lý data khách hàng hiệu quả cho doanh nghiệp

12/05/2025
Địa Chỉ Email Là Gì Và Cách để Tạo Lập địa Chỉ Mail Chuyên Nghiệp 612d23693d14c.jpeg

Địa chỉ email là gì và cách để tạo lập địa chỉ mail chuyên nghiệp

11/05/2025
Tự động Hóa Bán Hàng: Cách ứng Dụng Crm Vào Bán Hàng Và Marketing 612d0eb0e2b27.jpeg

Tự động hóa bán hàng: Cách ứng dụng CRM vào bán hàng và Marketing

11/05/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution