Πώς να συγκρίνετε δύο αρχεία στο Linux

How Compare Two Files Linux



Εάν θέλετε να συγκρίνετε δύο αρχεία και να αποκρυπτογραφήσετε τη διαφορά, μια εντολή καλείται διαφορά χρησιμοποιείται. Αυτός ο οδηγός επικεντρώνεται στην παροχή της χρήσης του διαφορά εντολή με διάφορες επιλογές για να λάβετε τη διαφορά μεταξύ δύο αρχείων.

Λοιπόν, πώς γίνεται το διαφορά η εντολή λειτουργεί πραγματικά; ο διαφορά Η εντολή συγκρίνει τα δύο αρχεία και εξάγει μια λίστα διαφορών μεταξύ των δύο αρχείων. Πιο συγκεκριμένα, δίνει μια λίστα τροποποιήσεων που πρέπει να γίνουν στο πρώτο αρχείο για να ταιριάζει με το δεύτερο αρχείο. ο διαφορά Η εντολή χρησιμοποιείται επίσης από τους προγραμματιστές για να πάρει τη διαφορά μεταξύ δύο αρχείων πηγαίου κώδικα για την ανάπτυξη επιδιορθώσεων.







Πριν εξερευνήσετε τα παραδείγματα, σημειώστε ότι η σειρά των αρχείων είναι πολύ σημαντική. Επειδή η διαφορά Η εντολή δίνει έξοδο με βάση τη σειρά των αρχείων.



Πώς να χρησιμοποιήσετε την εντολή diff στο Linux για σύγκριση αρχείων:

Η σύνταξη του διαφορά η εντολή αναφέρεται παρακάτω:



$διαφορά [επιλογές] [αρχείο 1] [αρχείο 2]

Αρχικά, δημιουργήστε δύο αρχεία. Δημιουργώ αρχεία κειμένου με το όνομα test_file_1.txt και test_file_2.txt Το Αυτά τα αρχεία περιέχουν περιεχόμενο με μικρή διαφορά:





Τώρα χρησιμοποιήστε την ακόλουθη εντολή για να λάβετε τη διαφορά:



$διαφοράtest_file_1.txt test_file_2.txt

Η τυπική έξοδος εμφανίζει τις γραμμές που ταιριάζουν σύμφωνα με τη σειρά των αρχείων που αναφέρονται στην εντολή. Ας αποκωδικοποιήσουμε λοιπόν την έξοδο:

Η σύγκριση των αρχείων επισημαίνεται και κάθε ετικέτα έχει έναν αριθμό και στις δύο πλευρές. Η μορφή έχει ως εξής:

[Αριθμός γραμμής αρχείου 1] [Ετικέτα (α, γ, δ)] [Αριθμός γραμμής αρχείου 2]

Υπάρχουν τρεις ετικέτες:

  • προς το - Προσθήκη: Προσθέστε περιεχόμενο στο πρώτο αρχείο για συγχρονισμό με το δεύτερο αρχείο.
  • ντο - Αλλαγή: Υποδεικνύει ότι απαιτείται τροποποίηση στο περιεχόμενο του πρώτου αρχείου για να ταιριάζει με το δεύτερο αρχείο.
  • ρε - Διαγραφή: Αφαιρέστε περιεχόμενο από το πρώτο αρχείο για να ταιριάζει με το δεύτερο.

2δ1 υποδεικνύει ότι διαγράφεται ο αριθμός γραμμής 2 του πρώτου αρχείου για να ταιριάζει με το δεύτερο αρχείο από τον αριθμό γραμμής 1.

Ομοίως, 4c3 σημαίνει να κάνετε μια αλλαγή στην τέταρτη γραμμή του πρώτου αρχείου για να ταιριάζει με τη γραμμή 3 του δεύτερου αρχείου καθώς και οι δύο γραμμές είναι ελαφρώς διαφορετικές.

Υπάρχει μια άλλη μέθοδος για να δείτε τη διαφορά, χρησιμοποιήστε το διαφορά εντολή με το -και επιλογή:

$διαφορά -και -ΣΕ 60test_file_1.txt test_file_2.txt

Στην παραπάνω έξοδο, το περιεχόμενο του test_file_1.txt εμφανίζεται στην αριστερή πλευρά, ενώ το περιεχόμενο του text_file_2.txt εμφανίζεται στη δεξιά πλευρά. Η διαφορά υποδεικνύεται από τα σύμβολα:

  • | - Η γραμμή είναι διαφορετική στο δεύτερο αρχείο
  • > - Η γραμμή είναι πρόσθετη στο δεύτερο αρχείο
  • <— Line has been deleted from the second file

Το -W υποδεικνύει το πλάτος μεταξύ του περιεχομένου δύο αρχείων. Για να λάβετε ξεχωριστά και να δείτε τη διαφορά, χρησιμοποιήστε τα εξής:

$διαφορά -και -ΣΕ 60 -καταπίεση-κοινές γραμμέςtest_file_1.txt test_file_2.txt

Πώς να αποκτήσετε έξοδο σε μία γραμμή χρησιμοποιώντας την εντολή diff:

Εάν η μέθοδος με την ετικέτα είναι δύσκολο να αποκωδικοποιηθεί, τότε υπάρχει μια απλούστερη προσέγγιση. Χρησιμοποιώντας το -q επιλογή με το διαφορά Η εντολή σας δίνει έξοδο σε μία γραμμή. Λοιπόν, χωρίς πρόσθετες πληροφορίες, όμως:

$διαφορά -qtest_file_1.txt test_file_2.txt

Εάν τα αρχεία διαφέρουν, τότε η παραπάνω εντολή θα δώσει μια έξοδο. Εάν τα αρχεία είναι πανομοιότυπα, τότε δεν θα υπάρχει έξοδος. Για να το δείξω, δημιουργώ ένα αντίγραφο του test_file_1.txt χρησιμοποιώντας:

$cptest_file_1.txt test_file_3.txt

Ένα νέο αρχείο θα δημιουργηθεί με το όνομα του test_file_3.txt που περιέχει το ίδιο περιεχόμενο με αυτό test_file_1.txt έχει. Τώρα, χρησιμοποιήστε:

$διαφορά -qtest_file_1.txt test_file_2.txt

Επειδή και τα δύο αρχεία έχουν παρόμοιο περιεχόμενο, επομένως, δεν θα υπάρχει έξοδος.

Πώς να ελέγξετε τη διαφορά αρχείων στη λειτουργία περιβάλλοντος χρησιμοποιώντας την εντολή diff:

Για να λάβετε τη σύγκριση σε λειτουργία περιβάλλοντος, το -ντο η επιλογή θα χρησιμοποιηθεί με το διαφορά εντολή:

$διαφορά -ντοtest_file_1.txt test_file_2.txt

Ας αναλύσουμε την έξοδο.

Για να διατηρηθεί η διαφορά, το πρώτο αρχείο υποδεικνύεται με *** μαζί με την ημερομηνία και την ώρα της δημιουργίας, ενώ το δεύτερο αρχείο με -.

Η επόμενη γραμμή υποδηλώνει μια σειρά γραμμών που εξετάστηκαν κατά τη σύγκριση. Για το πρώτο αρχείο, είναι *** 1,6 **** και για το δεύτερο αρχείο, είναι —1.5—- :

Η διαφορά υποδεικνύεται από τα σύμβολα:

  • +: Η γραμμή δεν υπάρχει στο πρώτο αρχείο. Τοποθετήστε το στο πρώτο αρχείο ή αφαιρέστε το από το δεύτερο για να ταιριάζει και με τα δύο αρχεία.
  • -: Η γραμμή υπάρχει στο πρώτο αρχείο αλλά όχι στο δεύτερο αρχείο. Προσπαθήστε να το εισαγάγετε στο δεύτερο αρχείο ή να το αφαιρέσετε από το πρώτο για να ταιριάζει και με τα δύο αρχεία.
  • ! : Η γραμμή χρειάζεται τροποποίηση για να ταιριάζει.

Πώς να ελέγξετε τη διαφορά αρχείων σε ενοποιημένη λειτουργία χρησιμοποιώντας την εντολή diff:

Η ενοποιημένη λειτουργία είναι αρκετά παρόμοια με τη λειτουργία περιβάλλοντος αλλά χωρίς περιττές πληροφορίες. Η σημαία που χρησιμοποιούμε είναι -u :

$διαφορά -utest_file_1.txt test_file_2.txt

Στην έξοδο, το πρώτο αρχείο υποδεικνύεται με - και το δεύτερο με +++. Η δεύτερη γραμμή εμφανίζει τον αριθμό των γραμμών που εξετάζονται για σύγκριση και στα δύο αρχεία, στη συνέχεια το περιεχόμενο που πρέπει να διαγραφεί, να προστεθεί ή να τροποποιηθεί με τα σύμβολα μαζί τους. Δεν θα υπάρχει σύμβολο με παρόμοιες γραμμές και στα δύο αρχεία.

Πώς να αγνοήσετε την ευαισθησία περίπτωσης κατά τη χρήση της εντολής diff:

Εάν θέλετε να συγκρίνετε τα αρχεία αγνοώντας την ευαισθησία πεζών, χρησιμοποιήστε το -Εγώ σημαία:

$διαφορά -Εγώtest_file_1.txt test_file_2.txt

Για επίδειξη, έχω φτιάξει το ρε του Βαθειά μέσα στο πρώτο αρχείο μικρό:

Όπως φαίνεται στην πρώτη εντολή, υποδεικνύεται η διαφορά. κατά τη χρήση -Εγώ αυτή η διαφορά έχει αφαιρεθεί.

Μερικές άλλες χρήσιμες επιλογές του διαφορά η εντολή παρατίθεται παρακάτω:

Επιλογή Περιγραφή
-προς το Αυτή η επιλογή αντιμετωπίζει όλα τα αρχεία ως αρχεία κειμένου
-ΣΙ Αγνοεί την τροποποίηση όπου όλες οι γραμμές είναι κενές
-ΚΑΙ Αυτή η επιλογή αγνοεί την επέκταση καρτέλας
-ΕΓΩ Αγνοεί τις αλλαγές όπου ταιριάζουν όλες οι γραμμές
-μικρό Δίνει έξοδο όταν δύο αρχεία είναι πανομοιότυπα
-σε Αγνοεί όλο τον λευκό χώρο
-ΜΕ Αγνοεί τον λευκό χώρο στο τέλος της γραμμής

Πώς να χρησιμοποιήσετε το Vim Editor για να συγκρίνετε δύο αρχεία:

Μια άλλη μέθοδος σύγκρισης δύο αρχείων είναι η χρήση του vimdiff εντολή. Για αυτό, πρέπει να έχετε εγκαταστήσει το vim:

$sudoκατάλληλοςεγκαθιστώ ήρθα

Τώρα, για να συγκρίνετε δύο αρχεία, χρησιμοποιήστε:

$vimdiff test_file_1.txt test_file_2.txt

Και τα δύο αρχεία θα ανοίξουν το ένα δίπλα στο άλλο. Το τμήμα που δεν ταιριάζει θα επισημανθεί:

Πώς να συγκρίνετε δύο αρχεία χρησιμοποιώντας το colordiff:

Μια άλλη προσέγγιση είναι ένα είδος επέκτασης του διαφορά εντολή. Μπορείτε να κάνετε τη σύγκριση πιο αναγνωρίσιμη προσθέτοντας χρώματα σε αυτήν. Για εγκατάσταση χρησιμοποιήστε:

$sudoκατάλληλοςεγκαθιστώκολόρντιφ

Για να συγκρίνετε αρχεία, χρησιμοποιήστε:

$colordiff test_file_1.txt test_file_2.txt

Μπορείτε να αντικαταστήσετε διαφορά με κολόρντιφ για να λάβετε την τυπική έξοδο του διαφορά εντολή σε έγχρωμη μορφή.

Συμπέρασμα:

Για να συγκρίνετε αρχεία σε Linux και ακόμη και σε macOS, ένα βοηθητικό πρόγραμμα που χρησιμοποιείται ονομάζεται diff. Το βοηθητικό πρόγραμμα διαφορών συγκρίνει δύο αρχεία και δίνει πληροφορίες σχετικά με τις διαφορές μεταξύ των δύο αρχείων. Οι προγραμματιστές χρησιμοποιούν κυρίως την εντολή diff για να δημιουργήσουν αρχεία επιδιορθώσεων.

Σε αυτόν τον οδηγό, συζητήσαμε διεξοδικά το διαφορά εντολή και πώς να τη χρησιμοποιήσετε για να συγκρίνετε δύο αρχεία με διαφορετικές επιλογές. Μάθαμε επίσης πώς να χρησιμοποιούμε κολόρντιφ για να καταστούν οι διαφορές αρχείων πιο αναγνωρίσιμες. Αν όμως θεωρείτε δύσκολο στη χρήση βοηθητικό πρόγραμμα που βασίζεται σε τερματικό, υπάρχουν και εργαλεία που βασίζονται σε GUI, όπως το Kompare, το DiffMerge, το Meld-Diff Tool και το Diffuse-GUI Giff Tool.