বাশে দুটি ফাইলের প্রধানের সাথে তুলনা করুন


11

আমি diff filea filebফাইলের মধ্যে পার্থক্য দেখতে পারি । head -1 fileaফাইলিয়া বা ফাইল্বের প্রথম লাইনটি দেখতে আমিও করতে পারি । ফাইলের প্রথম লাইন এবং ফাইলবের প্রথম লাইনের মধ্যে পার্থক্য দেখানোর জন্য আমি এই আদেশগুলি কীভাবে একত্রিত করতে পারি?

উত্তর:


22

যদি আপনার শেল প্রক্রিয়া প্রতিস্থাপন সমর্থন করে , চেষ্টা করুন:

diff <(head -n 1 filea) <(head -n 1 fileb)

আমি ইতিমধ্যে কোথাও প্রক্রিয়া সাবস্টিস্টেশন কমান্ড দেখেছি, কিন্তু এটি কী করেছিল তা আমি জানতাম না। ধন্যবাদ!
edi9999

6

আপনি যদি প্রতিটি ফাইলের প্রথম লাইনটির তুলনা করে থাকেন তবে সম্ভবত আপনি লাইনটির মধ্যে শব্দ-স্তরীয় পরিবর্তনগুলি যত্ন নিয়ে দেখছেন dwdiff:

dwdiff <(head -n 1 filea) <(head -n 1 fileb)

dwdiffকিছু দুর্দান্ত বিকল্প রয়েছে, -cপরিবর্তিত শব্দগুলিকে রঙিন করতে চাই ।

বা, sedমাথার পরিবর্তে ব্যবহার করে:

dwdiff <(sed 1q filea) <(sed 1q fileb)

যা মাথা জন্য ম্যানুয়াল প্রস্তাব দেওয়া, মাথা চেয়ে বেশি পোর্টেবল হিসাবে মাথা জন্য সিনট্যাক্স সময়ের সাথে পরিবর্তিত হয়েছে head -1বনামhead -n 1

এছাড়াও, আপনি কিছুটা কম টাইপ করে কেবল পরিবর্তনগুলি চোখের জল ফেলতে পারেন:

head -n1 -q filea fileb

যা সহজে ভিজ্যুয়াল তুলনার জন্য দুটি লাইনকে একের নীচে প্রদর্শন করে।


0

তুমি ব্যবহার করতে পার:

if [ "`head -1 file1`" == "`head -1 file2`" ]; then echo "the same"; fi

2
নোট করুন যে ফাইল 1 খালি ফাইল (বা পাঠযোগ্য নয়) এবং ফাইল 2 এর প্রথম লাইন ফাঁকা থাকলে এটি "একই "টির উত্তর দেবে।
স্টাফেন শেজেলাস

আমি বলিনি যে এই পদ্ধতিটি 'ইডিয়ট প্রুফ' তবে আপনি যদি দ্রুত দুটি ফাইলের প্রথম লাইনের সাথে মেলে চান ...
ল্যামবার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.