نحوه مقایسه دو فایل متنی با استفاده از لینوکس

این راهنما به شما نحوه استفاده از لینوکس برای مقایسه دو فایل را نشان می دهد و تفاوت آنها را به روی صفحه یا یک فایل نمایش می دهد.

شما نیازی به نصب نرم افزار خاصی برای مقایسه فایل ها با استفاده از لینوکس ندارید، اما باید بدانید که چگونه یک پنجره ترمینال را باز کنید .

به عنوان راهنمای مرتبط نشان می دهد راه های بسیاری برای باز کردن یک پنجره ترمینال با استفاده از لینوکس وجود دارد. ساده ترین کار این است که همزمان CTRL، ALT و T را فشار دهید.

ایجاد فایل ها برای مقایسه

برای دنبال کردن همراه با این راهنما یک فایل به نام "file1" ایجاد کنید و متن زیر را وارد کنید:

10 بطری سبز روی دیوار ایستاده است

10 بطری سبز روی دیوار ایستاده است

اگر یک بطری سبز به طور تصادفی سقوط کند

9 بطری سبز روی دیوار وجود دارد

شما می توانید یک فایل را با پیروی از این دستورالعمل ایجاد کنید:

  1. با تایپ کردن دستور زیر فایل را باز کنید: nano file1
  2. متن را به ویرایشگر nano تایپ کنید
  3. برای ذخیره فایل، CTRL و O را فشار دهید
  4. CTRL و X را برای خروج از فایل فشار دهید

فایل دیگری با نام "file2" ایجاد کنید و متن زیر را وارد کنید:

10 بطری سبز روی دیوار ایستاده است

اگر 1 بطری سبز به طور تصادفی سقوط می کند

9 بطری سبز روی دیوار وجود دارد

شما می توانید یک فایل را با پیروی از این دستورالعمل ایجاد کنید:

  1. با تایپ کردن دستور زیر فایل را باز کنید: nano file2
  2. متن را به ویرایشگر nano تایپ کنید
  3. برای ذخیره فایل، CTRL و O را فشار دهید
  4. CTRL و X را برای خروج از فایل فشار دهید

نحوه مقایسه دو فایل با استفاده از لینوکس

فرمان مورد استفاده در لینوکس برای نشان دادن تفاوت بین دو فایل، دستور diff نامیده می شود.

ساده ترین شکل دستور diff به شرح زیر است:

diff file1 file2

اگر فایل ها یکسان باشند، هنگام استفاده از این دستور، خروجی نخواهد بود، با این وجود تفاوت هایی وجود دارد که شما خروجی را شبیه به موارد زیر می بینید:

2،4c2،3

<10 بطری سبز روی دیوار ایستاده است

<اگر یک بطری سبز به طور تصادفی سقوط کند

<9 بطری سبز روی دیوار ایستاده است

...

> اگر 1 بطری سبز به طور تصادفی سقوط کند

> 9 بطری سبز روی دیوار ایستاده است

در ابتدا، خروجی ممکن است به نظر گیج کننده باشد، اما هنگامی که شما اصطلاحات را درک می کنید، منطقی است.

با استفاده از چشمان خود شما می توانید ببینید که تفاوت بین 2 فایل به شرح زیر است:

خروجی از دستور diff نشان می دهد که بین خطوط 2 و 4 از فایل اول و خطوط 2 و 3 فایل دوم اختلاف وجود دارد.

سپس خطوط را از 2 تا 4 از فایل اول به دنبال 2 خط مختلف در فایل دوم لیست می کند.

چگونه فایلهای مختلف را نمایش دهیم

اگر فقط می خواهید بدانید که فایل ها متفاوت هستند و شما علاقه مند به کدام خطوط متفاوت هستید، می توانید دستور زیر را اجرا کنید:

diff -q file1 file2

اگر فایل ها متفاوت باشند، زیر نمایش داده خواهند شد:

فایل file1 و file2 متفاوت هستند

اگر فایل ها یکسان باشند، چیزی نمایش داده نمی شود.

چگونه یک پیام را نشان دهیم اگر فایلها یکسان باشند

هنگام اجرای یک فرمان می خواهید بدانید که آن را به درستی کار کرده است، بنابراین شما می خواهید پیام نمایش داده می شود زمانی که شما اجرا دستور diff بدون در نظر گرفتن اینکه آیا فایل ها یکسان هستند یا متفاوت

برای دستیابی به این نیاز با استفاده از دستور diff، می توانید از دستور زیر استفاده کنید:

diff -s file1 file2

حالا اگر فایل ها یکسان باشند، پیام زیر را دریافت خواهید کرد:

فایلهای file1 و file2 یکسان هستند

چگونه می توان تفاوت ها را کنار هم قرار داد

اگر اختلاف زیادی وجود داشته باشد، می تواند خیلی سریع به تفاوت های واقع بین دو فایل تبدیل شود.

شما می توانید خروجی دستور diff را تغییر دهید تا نتایج به صورت یک طرفه نشان داده شوند. برای انجام این کار دستور زیر را اجرا کنید:

diff -y file1 file2

خروجی برای فایل با استفاده از | نماد برای نشان دادن یک تفاوت بین دو خط، یک <برای نشان دادن یک خط است که حذف شده است و a> برای نشان دادن یک خط اضافه شده است.

جالب توجه است اگر شما با استفاده از پرونده های تظاهرات خود دستور را اجرا کنید، تمام خطوط به جز خط آخر فایل 2 نشان داده می شوند که به صورت حذف شده نشان داده می شوند.

محدود کردن عرض ستون

هنگام مقایسه دو فایل در کنار آن سخت است که بخواهید فایل ها را بخوانید اگر تعداد زیادی ستون از متن داشته باشید.

برای محدود کردن تعداد ستون ها از دستور زیر استفاده می شود:

diff --width = 5 فایل file2

نحوه نادیده گرفتن تفاوت های موردی هنگام مقایسه فایل ها

اگر می خواهید دو فایل را مقایسه کنید، اما لازم نیست که آیا حروف حروف دو فایل هستند، سپس می توانید از دستور زیر استفاده کنید:

diff -i file1 file2

چگونگی نادیده گرفتن فضای سفالی در انتهای یک خط

اگر هنگام مقایسه فایل ها متوجه اختلافات شدید و تفاوت های ناشی از فضای سفید در انتهای خط ها باشد، می توانید این را به عنوان تغییر با استفاده از دستور زیر حذف کنید:

diff -Z file1 file2

نحوه نادیده گرفتن اختلاف فضای سفید بین دو فایل

اگر فقط به یک متن در یک فایل علاقمند هستید و به هیچ وجه مهم نیست که آیا فضاهای بیشتری در یکی وجود دارد یا خیر، میتوانید از دستور زیر استفاده کنید:

diff -w file1 file2

نحوه نادیده گرفتن خطوط خالی هنگام مقایسه دو فایل

اگر لازم نیست که یک فایل خطوط اضافی خالی در آن داشته باشد، می توانید فایل ها را با استفاده از دستور زیر مقایسه کنید:

diff -B file1 file2

خلاصه

شما می توانید اطلاعات بیشتری را با خواندن دستورالعمل برای دستور diff پیدا کنید.

مرد تفاوت

دستور diff را می توان در ساده ترین شکل آن استفاده کرد تا تفاوت های بین دو فایل را به شما نشان دهد، اما می توانید از آن برای ایجاد یک فایل diff به عنوان بخشی از استراتژی patching استفاده کنید، همانطور که در این راهنما به فرمان patch لینوکس نشان داده شده است.

فرمان دیگری که می توانید برای مقایسه فایل ها استفاده کنید دستور cmp است که توسط این راهنما نشان داده شده است . این فایل ها را توسط بایت مقایسه می کند.