Как да сравнявате два текстови файла с Linux

Това ръководство ще ви покаже как да използвате Linux, за да сравните два файла и да ги изведете на екрана или на файл.

Не е нужно да инсталирате специален софтуер, за да сравнявате файлове, използващи Linux, но трябва да знаете как да отворите терминален прозорец .

Както показва свързаното ръководство, има много начини да отворите терминален прозорец, използвайки Linux. Най-простото е да натискате едновременно клавишите CTRL, ALT и T.

Създаване на файловете за сравнение

За да следвате заедно с това ръководство, създайте файл, наречен "file1", и въведете следния текст:

10 зелени бутилки, стоящи на стената

10 зелени бутилки, стоящи на стената

Ако една зелена бутилка случайно падне

На стената щеше да има 9 зелени бутилки

Можете да създадете файл, като изпълните следните указания:

  1. Отворете файла, като въведете следната команда: nano file1
  2. Въведете текста в нано редактора
  3. Натиснете CTRL и O, за да запазите файла
  4. Натиснете CTRL и X, за да излезете от файла

Сега създайте друг файл, наречен "file2", и въведете следния текст:

10 зелени бутилки, стоящи на стената

Ако една зелена бутилка случайно падне

На стената щеше да има 9 зелени бутилки

Можете да създадете файл, като изпълните следните указания:

  1. Отворете файла, като въведете следната команда: nano file2
  2. Въведете текста в нано редактора
  3. Натиснете CTRL и O, за да запазите файла
  4. Натиснете CTRL и X, за да излезете от файла

Как да сравнявате два файла с Linux

Командата използвана в Linux за показване на разликите между 2 файла се нарича командата diff.

Най-простата форма на командата diff е следната:

разфасов файл1 файл2

Ако файловете са същите, няма да има изход, когато използвате тази команда, обаче, тъй като има разлики, ще видите изход, подобен на следния:

2,4c2,3

<10 зелени бутилки, стоящи на стената

<Ако една зелена бутилка случайно падне

<Ще има 9 зелени бутилки, стоящи на стената

...

> Ако една зелена бутилка случайно трябва да падне

> Ще има 9 зелени бутилки, които стоят на стената

Първоначално продукцията може да изглежда объркваща, но щом разберете терминологията, това е сравнително логично.

С помощта на собствените си очи можете да видите, че разликите между 2 файла са както следва:

Резултатът от командата diff показва, че между линии 2 и 4 на първия файл и линии 2 и 3 на втория файл има разлики.

След това се показват линиите от 2 до 4 от първия файл, последвани от 2 различни реда във втория файл.

Как да покажа само дали файловете са различни

Ако просто искате да разберете дали файловете са различни и не ви интересува кои линии са различни, можете да изпълните следната команда:

diff -q файл1 файл2

Ако файловете са различни, ще се покаже следното:

Файловете file1 и file2 се различават

Ако файловете са същите, тогава нищо не се показва.

Как да се покаже съобщение, ако файловете са еднакви

Когато стартирате команда, която искате да знаете, че е работила правилно, така че искате да се показва съобщение, когато стартирате командата diff, независимо дали файловете са еднакви или различни

За да постигнете това изискване, използвайки командата diff, можете да използвате следната команда :.

diff -s файл1 файл2

Сега, ако файловете са същите, ще получите следното съобщение:

Файловете file1 и file2 са идентични

Как да създадем разликите един до друг

Ако има много различия, то бързо може да стане объркващо за това, какви са разликите в действителност между двата файла.

Можете да промените изхода на командата diff, така че резултатите да се показват едно до друго. За да направите това, изпълнете следната команда:

diff -y файл1 файл2

Изходът за файла използва | символ за показване на разлика между двата реда, a <за показване на линия, която е премахната и> за показване на линия, която е била добавена.

Интересното е, че ако стартирате командата, използвайки нашите демонстрационни файлове, всички линии ще се показват като различни, с изключение на последния ред на файл 2, който ще бъде показан като изтрит.

Ограничаване на ширините на колоните

Когато сравнявате два файла една до друга, може да е трудно да се прочете дали файловете имат много колони на текст.

За да ограничите броя на колоните, използвайте следната команда:

diff - width = 5 файл file2

Как да се игнорират делата при сравняване на файлове

Ако искате да сравнявате два файла, но не ви е интересно дали буквите са еднакви между двата файла, можете да използвате следната команда:

diff -i файл1 файл2

Как да пренебрегваме бялото пространство в края на линията

Ако при сравняването на файловете забележите много разлики и разликите са причинени от бяло пространство в края на линиите, можете да ги пропуснете, като се показват като промени, като изпълните следната команда:

diff -Z файл1 файл2

Как да пренебрегнете всички бели пространствени разлики между два файла

Ако се интересувате само от текста във файл и не ви е интересно дали има повече интервали в една от другата, можете да използвате следната команда:

diff -w файл1 файл2

Как да пренебрегнете празните линии при сравняване на два файла

Ако не ви е грижа, че един файл може да има допълнителни празни линии в него, тогава можете да сравните файловете, като използвате следната команда:

diff -B file1 file2

резюме

Можете да намерите повече информация, като прочетете ръководството за командата diff.

мъжка диф

Командата diff може да се използва в най-простата форма, за да ви покаже разликите между 2 файла, но можете да го използвате и за създаване на диф файл като част от стратегия за закрепване, както е показано в това ръководство на командата за корекция на Linux .

Друга команда, която можете да използвате за сравняване на файлове, е командата cmp, както е показано в това ръководство . Това сравнява файловия байт с байт.