আমি দুটি snmpd.conf ফাইল পেয়েছি, একটি সার্ভারে কাজ করে যা একটি, এবং একটি যা কাজ করে না। অপ্রাসঙ্গিক মন্তব্য এবং নিউলাইনগুলি বাদ দেওয়ার জন্য আমি কীভাবে দুটি কনফিগার ফাইলগুলিতে পার্থক্য করতে পারি?
আমি দুটি snmpd.conf ফাইল পেয়েছি, একটি সার্ভারে কাজ করে যা একটি, এবং একটি যা কাজ করে না। অপ্রাসঙ্গিক মন্তব্য এবং নিউলাইনগুলি বাদ দেওয়ার জন্য আমি কীভাবে দুটি কনফিগার ফাইলগুলিতে পার্থক্য করতে পারি?
উত্তর:
diff <(grep -v '^#' f1) <(grep -v '^#' f2)
ফাঁকা রেখাগুলি এবং শূন্যস্থান ছাড়া আর কিছুই নেই এমন রেখাগুলি এড়াতে অভিন্ন লিডগুলির সাথে যুক্ত হওয়া শীর্ষস্থানীয় স্পেসগুলির একক পার্থক্য রয়েছে ...
diff -b \
<(grep -vE '^([ \t]*#|^[ \t]*$)' f1)\
<(grep -vE '^([ \t]*#|^[ \t]*$)' f2)
যদিও এই মুহুর্তে, আমি সম্ভবত এটি কোনও স্ক্রিপ্টের মধ্যে রেখেছি এবং মূল পরামর্শ হিসাবে এমন কিছু লিখব যা আরও কিছুটা পাঠযোগ্য।
আপনার সাথে কিছুটা আরামদায়ক হন তেজ , আমি দৃঢ়ভাবে ব্যবহার করতে উত্সাহিত হবে vimdiff :
vimdiff file1 file2
এটি প্রতিটি পাশের দুটি ফাইল সহ দুটি ফলক সহ একটি ভিম সেশনটি খুলবে। হাইলাইট এবং রঙ ফাইলগুলির মধ্যে পার্থক্য নির্দেশ করবে এবং সমস্ত অভিন্ন অংশগুলি লুকানো থাকবে (ভাঁজযুক্ত, তবে প্রসারণযোগ্য)।
তারপরে, আপনি যদি একটি ফাইল থেকে অন্য ফাইলের মধ্যে নির্বাচনগুলি পৃথকভাবে মার্জ করতে চান তবে আপনি নিম্নলিখিত কমান্ডগুলি ব্যবহার করতে পারেন:
(কার্সারটি হ'ল "বর্তমান ফাইল" হিসাবে বিবেচনা করুন)
File W ^ W এক ফাইলের উইন্ডো থেকে অন্য ফাইলের উইন্ডোতে ফোকাস পরিবর্তন করতে
] সি পার্থক্য সহ পরবর্তী ব্লকে যেতে
[সি পার্থক্য সহ পূর্ববর্তী ব্লকের অনুসন্ধানের বিপরীতে
অন্য ফাইল থেকে বর্তমান ফাইলে পরিবর্তন আনতে do ( d iff o btain) করুন
বর্তমান ফাইল থেকে অন্য ফাইলে পরিবর্তন পাঠাতে dp ( d iff p ut)
নোট: উভয় কি এবং ডিপি কাজ যদি আপনি একটি ব্লক বা একটি ব্লকের মাত্র এক লাইনে আছে।
তোমার দর্শন লগ করা থেকে তোমার দর্শন লগ করা Ndo
zo to টেক্সট উন্মুক্ত / আন-লুকান
জেডিসি পুনরায় ভাঁজ / পুনরায় গোপন পাঠ্য
zr উভয় ফাইল সম্পূর্ণ উন্মোচিত করবে (ব্যবহার : ভাঁজ সম্পর্কে আরও সাহায্যের জন্য ভাঁজ)
: ডিফআপডেট পরিবর্তনের জন্য ফাইলগুলি পুনরায় স্ক্যান করবে
আপনি পরিবর্তিত পাঠ্যকে উপরে স্থানান্তরিত করতে বা পরিবর্তন আনতে শুরু করার সাথে সাথে ফাইলগুলির এখন-অভিন্ন অংশগুলিও স্বয়ংক্রিয়ভাবে গুটিয়ে যাবে।
আপনি যখন শেষ করেন, তখন আপনি প্রস্থান করে দুটি ফাইলই লিখতে পারেন : এক্সএ!
আপনি যেমন লিখতে পারেন, ছেড়ে দিতে পারেন, পরিবর্তনগুলি বাতিল করতে পারেন ইত্যাদি, একবারে একটি ফলক যেমন আপনি সাধারণত ভিআইএম দিয়ে করেন।
ইচ্ছামত ফাইলগুলি সম্পাদনা করতে আপনি সমস্ত সাধারণ ভিআইএম কমান্ড ব্যবহার করতে পারেন; আমি কেবল সর্বাধিক সাধারণ এবং দরকারী কমান্ডগুলি বর্ণনা করেছি যা আপনি সম্ভবত কোনও ভিমিডিফ সেশনে ব্যবহার করতে পারেন (জেনেরিক ভিমের কোনও বিপরীতে)।
তুলনা ছাড়াই এই জন্য চূড়ান্ত সরঞ্জাম!
লিঙ্ক: http://www.scootersoftware.com/
উইন্ডোজ এবং লিনাক্স জন্য উপলব্ধ।
জেফ কিছুক্ষণ আগে এই সরঞ্জামটি সম্পর্কে একটি ভাল ওভারভিউ নিবন্ধ লিখেছিলেন:
http://www.codinghorror.com/blog/archives/000454.html
নিমার ওয়ান-লাইনারে প্রসারিত করে, আপনি এটি শেল ফাংশন হিসাবে করতে এবং এটি আপনার .bashrc এ ফেলে দিতে পারেন
diff <(grep -v '^#' f1) <(grep -v '^#' f2)
হয়ে যায় (ইউ ব্যবহার করে কারণ আমি একীভূত বিভিন্নতা পছন্দ করি)
function cleandiff {
diff -u <(grep -v '^#' $1| grep -v '^ *$') <(grep -v '^#' $2 | grep -v '^ *$')
}
আপনি যদি জিইআইআই ভিন্ন ভিন্ন দর্শকদের পছন্দ করেন তবে মেল্ডটি দুর্দান্ত, এবং সংশোধন নিয়ন্ত্রিত ডায়ার্স / ফাইলগুলি বোঝে।
মন্তব্যগুলি সাফ করার পরে, আমি কেডিফ 3 ব্যবহার করার পরামর্শ দেব, এটি একটি দুর্দান্ত ডিফ / মার্জ টুল এবং এটি ব্যবহার করার জন্য আপনার ভিএমইউ ফু লাগবে না :)
আপনি যদি ব্যাশের মতো শেল ব্যবহার করেন তবে আপনি এটি ব্যবহার করে দেখতে পারেন:
# Name this diff-stripped
STRIPPED=
for i in $*; do
egrep -v "^#|^\s*" "$i" > "$i.stripped"
STRIPPED="$STRIPPED $i.stripped"
done
diff $STRIPPED
তারপরে এটিকে অনুরোধ করুন:
diff-stripped file1 file2 ...
আপনি যেটি পরিবর্তন diff
করতে পারেন vimdiff
বা gvimdiff
যা উভয়ই আসে vim
।
জেরেক্সেসের সমাধানটি প্রসারিত করে, আপনি diff
পার্থক্যগুলি প্রদর্শন করার চেয়ে বেশি পরিশীলিত সরঞ্জাম ব্যবহার করতে পারেন ।
wdiff
অনেক সময় "খুব স্মার্ট" হতে পারে তবে কনফিগারেশন ফাইলগুলির মধ্যে পার্থক্যগুলিকে দ্রুত নজর দেওয়ার জন্য আমি প্রায়শই দরকারী বলে মনে করি। এই স্ক্রিপ্টটি রঙের সাথে আউটপুট দেওয়ার জন্য ব্যবহার করা যেতে পারে:
#!/bin/bash
RED=$'\e'"[1;31m"
GREEN=$'\e'"[1;32m"
RESET=$'\e'"[0m"
WDIFF_ARGS="-w$RED -x$RESET -y$GREEN -z$RESET --avoid-wraps"
wdiff $WDIFF_ARGS \
<(grep -vE '^([ \t]*#|^[ \t]*$)' $1) \
<(grep -vE '^([ \t]*#|^[ \t]*$)' $2) \
| less -R
apt-get install wdiff
এই স্ক্রিপ্টটি ব্যবহারের ঠিক আগে উবুন্টু এবং অন্যান্য ডেবিয়ান-ভিত্তিক সিস্টেমে ।
মাঠ একটি দুর্দান্ত জিইউআই বিকল্প, তবে এর "পাঠ্য ফিল্টারিং" বৈশিষ্ট্যটিতে কিছু সমস্যা রয়েছে। পাঠ্য ফিল্টারিংয়ের পরিবর্তে, আমি মেল্ডে ফলাফলগুলি দেখানোর আগে মন্তব্যগুলি পুরোপুরি সরিয়ে ফেলি। অপূর্ণতা ফাইলগুলি তুলনা করার সময় সম্পাদনা করার ক্ষমতা হারাচ্ছে। মেল্ড ব্যবহারের জন্য এখানে একটি সাধারণ স্ক্রিপ্ট:
#!/bin/bash
meld <(grep -vE '^([ \t]*#|^[ \t]*$)' $1) \
<(grep -vE '^([ \t]*#|^[ \t]*$)' $2)
কখনও কখনও, ডিফের আগে ফাইলগুলি বাছাই করে বেশ কয়েকটি অতিরিক্ত সাধারণ লাইনগুলি ছিনিয়ে নেওয়া যায়, তাই আমি ইতিমধ্যে নিম্নলিখিতগুলি যা লিখেছি তা যুক্ত করব:
diff <(grep -v '^#' f1 | sort) <(grep -v '^#' f2 | sort)
এটি অবশ্যই সেই ফাইলগুলির জন্য অর্থবোধ করে যেখানে লাইনগুলির ক্রম এটির সামগ্রীতে প্রভাব ফেলে না (তাই সচেতন হন)।
আমি ব্যবহার WinMerge http://winmerge.org পরিবর্তন ফাইলগুলিতে, মঞ্জুর আমি তাদের আমার মেশিনে চূর্ণ করতে হবে, কিন্তু এটা কাজ করে।
level
! =)