আপনাকে মূলত দুটি ফাইলের তুলনা করতে হবে, শর্তাধীনভাবে পিছনের বাইটটি উপেক্ষা করে। এটি করার জন্য কোনও 'ডিফ' বিকল্প নেই - তবে এটি করা যেতে পারে এমন অনেকগুলি উপায় রয়েছে (যেমন, হেক্সের পার্থক্যটি মনেও আসে))
'ডিফ' ব্যবহার করতে, আপনাকে মূলত কোনও ফাইলের শেষে নতুন লাইন মিস করা ফাইলগুলি সংশোধন করতে হবে এবং তারপরে তুলনা করতে হবে। আপনি পরিবর্তিত ফাইলগুলি সহ একটি অস্থায়ী ডিরেক্টরি তৈরি করতে পারেন, বা কিছুটা স্ক্রিপ্টিং দিয়ে স্মৃতিতে এটি করা যেতে পারে। (যা পছন্দসই পছন্দ উপর নির্ভর করে, ফাইলের আকার, ফাইল সংখ্যা ...)
উদাহরণস্বরূপ, নিম্নলিখিত কোনও ফাইলের বিষয়বস্তুগুলি ( sed -i
স্থান পরিবর্তন করার জন্য ব্যবহার করুন , এটি নিখরচায় প্রিন্ট করুন) কোনও অনুপস্থিত থাকলে একটি নতুন লাইন যুক্ত করতে (বা ইতিমধ্যে একটি নতুন লাইন থাকলে ফাইলটি অপরিবর্তিত রেখে দিন):
sed -e '$a\' file1.txt
এবং কেবল 'ডিফ' সিনট্যাক্স পর্যালোচনা করতে (সত্য প্রত্যাবর্তনের অর্থ তারা একই, মিথ্যা অর্থ ভিন্ন):
$ diff a/file1.txt b/file1.txt \
&& echo '** are same' || echo '** are different'
2c2
< eof
---
> eof
\ No newline at end of file
** are different
কেবল শ্বেত স্থানটি আলাদা কিনা তা যাচাই করুন:
$ diff --ignore-all-space a/file1.txt b/file1.txt \
&& echo '** are same' || echo '** are different'
** are same
বাশ-এ, আমরা ফাইলের বিষয়বস্তুগুলি 'ডিফ' (মূল ফাইলগুলি অপরিবর্তিত রেখে দেওয়া হয়েছে) ম্যানিটুলেট করতে 'সেড' ব্যবহার করতে পারি:
$ diff <(sed -e '$a\' a/file1.txt) <(sed -e '$a\' b/file1.txt) \
&& echo '** are same' || echo '** are different'
** are same
এখন আপনাকে যা করতে হবে তা হ'ল diff -r
পুনরাবৃত্তির সাথে ডিরেক্টরিগুলির তুলনা করতে অনুকরণ করা। তাহলে ডিরেক্টরি তুলনা a
এবং b
সমস্ত ফাইল, তারপর a
(যেমন, a/dir1/dir2/file.txt
ফাইল করার জন্য) আহরণ পথ b
(যেমন, b/dir1/dir2/file.txt
) এবং তুলনা করুন:
$ for f in $( find a -type f )
> do
> diff <(sed -e '$a\' $f) <(sed -e '$a\' b/${f#*/})
> done
আরও কিছুটা ভার্বোজ সংস্করণ:
$ for f in $( find a -type f )
> do
> f1=$f
> f2=b/${f#*/}
> echo "compare: $f1 $f2"
> diff <(sed -e '$a\' $f1) <(sed -e '$a\' $f2) \
> && echo '** are same' || echo '** are different'
> done && echo '** all are same' || echo '** all are different'
compare: a/file1.txt b/file1.txt
** are same
compare: a/file2.txt b/file2.txt
** are same
** all are same
sed -e '$a\'
ঠিক কি করে? thx