পাশে কী কনডেন্সড পার্শ্ব পার্থক্য ফর্ম্যাট আছে?


40

হাজার লাইনের সাথে আমার দুটি লগ ফাইল রয়েছে। প্রাক-প্রক্রিয়াজাতকরণের পরে, কেবল কয়েকটি লাইন পৃথক হয়। এই অবশিষ্ট রেখাগুলি হয় প্রকৃত পার্থক্য, বা রেখার গোছানো দল।

ইউনিফাইড ডিফগুলি আমাকে বিস্তারিত পার্থক্যগুলি দেখার অনুমতি দেয় তবে এটি চোখের বলের সাথে ম্যানুয়াল তুলনা শক্ত করে তোলে। পার্শ্ব-পাশাপাশি পার্থক্যগুলি তুলনা করার জন্য আরও কার্যকর বলে মনে হয়, তবে এটি হাজার হাজার অপরিবর্তিত রেখা যুক্ত করে। উভয় জগতের সুবিধা পাওয়ার কোনও উপায় আছে?

দ্রষ্টব্য, এই লগ ফাইলগুলি উত্পাদিত হয় xscopeযা কোন প্রোগ্রাম যা Xorg প্রোটোকল ডেটা পর্যবেক্ষণ করে। আমি সাধারণ-উদ্দেশ্যে সরঞ্জামগুলির সন্ধান করছি যা উপরের মতো পরিস্থিতিতে প্রয়োগ করা যেতে পারে, উদাহরণস্বরূপ বিশেষায়িত ওয়েবসার্ভার অ্যাক্সেস লগ বিশ্লেষণ সরঞ্জাম নয়।


দুটি উদাহরণ লগ ফাইল http://lekensteyn.nl/files/qemu-sdl-debug/ ( log13এবং log14) এ উপলব্ধ । একটি প্রাক-প্রসেসর কমান্ড xscope-filterফাইলটিতে পাওয়া যেতে পারে যা টাইমস্ট্যাম্পগুলি এবং অন্যান্য ছোটখাট বিবরণ সরিয়ে দেয়।


2
আপনার diffকি --suppress-common-linesবিকল্প আছে? পেস্টবিন.
com

1
@ মানাটওয়ার্ক চমৎকার, এটি করেন। আরও প্রসঙ্গ যুক্ত করার কোনও উপায় (যেমন লাইন নম্বর)?
লেকেনস্টেইন

5
তারপরে হতে পারে vimdiff( ভিএম প্যাকেজ থেকে) আপনার প্রয়োজনগুলি আরও ভালভাবে সরবরাহ করবে: সমান্তরাল প্রদর্শন, রঙিন, সাধারণ লাইনগুলি ভাঁজ করা। লাইন নম্বরগুলি দিয়ে চালু করা যেতে পারে :set number
manatwork

আমি মনে করি আপনার উত্তর হিসাবে ভিমিডিফ রাখা উচিত :)
কোট্টে

1
সিএলআই সরঞ্জামগুলি অগ্রাধিকার দেওয়া হয় তবে জিইউআই সরঞ্জামগুলি যদি যথেষ্ট পরিমাণে সামান্য হয় তবে তা অনুমোদিত হয় allowed আমি কেডিফ 3 চেষ্টা করেছি, তবে এটি এখনও আরও বিশদে উত্পাদিত হয়েছে। আদর্শভাবে, আমি সমস্ত অপ্রয়োজনীয় বিশদটি দেখতে পাচ্ছি না। আমি দুটি ডেটা সেট সংযুক্ত করব।
লেকেনস্টেইন

উত্তর:


37

2 পরিবর্তন টুলস আমি সবচেয়ে ব্যবহার হবে মেশানো এবং sdiff

মেশানো

মাঠ একটি জিইউআই কিন্তু ফাইলগুলির মধ্যে পার্থক্য দেখানোর ক্ষেত্রে দুর্দান্ত কাজ করে। এটি সফ্টওয়্যার বিকাশের জন্য আরও বৈশিষ্ট্য সহ যেমন পরিবর্তনগুলি একত্রিত করতে অন্যদিকে পরিবর্তনগুলি সরিয়ে নেওয়ার ক্ষমতা রাখে তবে কেবল একটি সোজা পাশাপাশি পাশাপাশি ডিফিংয়ের সরঞ্জাম হিসাবে ব্যবহার করা যেতে পারে।

    এস এস মেল্ড

    মেল্ড কোড হাইলাইটিং এর এস এস

sdiff

আমি বছরের পর বছর ধরে এই সরঞ্জামটি ব্যবহার করেছি। আমি এটি নিম্নলিখিত স্যুইচগুলি সহ সাধারণত চালিত করি:

$ sdiff -bBWs file1 file2
  • -b সাদা জায়গার পরিমাণে পরিবর্তনগুলি উপেক্ষা করুন।
  • -W সমস্ত সাদা স্থান উপেক্ষা করুন।
  • -B যার রেখাগুলি সমস্ত ফাঁকা রয়েছে এমন পরিবর্তনগুলি উপেক্ষা করুন।
  • -s সাধারণ লাইনগুলি আউটপুট করবেন না।

প্রায়শই লগ ফাইলগুলির সাথে আপনার কলামগুলির প্রস্থ আরও প্রশস্ত করতে হবে, আপনি -w <num>পর্দা আরও প্রশস্ত করতে ব্যবহার করতে পারেন ।

অন্যান্য সরঞ্জামগুলি যা আমি বন্ধ এবং চালু ব্যবহার করি

diffc

ডিফফসি একটি পাইথন স্ক্রিপ্ট যা ইউনিফাইড ডিফ আউটপুটকে রঙিন করে।

$ diffc [OPTION] FILE1 FILE2

             ডিএসএফসি এর এসএস

vimdiff

ভিডমিফ সম্ভবত মেল্ডের চেয়ে ভাল না হলে এটি ভাল এবং এটি একটি টার্মিনাল থেকে চালানো যেতে পারে। আমি এটি সর্বদা ব্যবহার করতে ভুলে যাই যদিও আমার কাছে এটি একটি ভাল সূচক যা আমি সরঞ্জামটিকে প্রতিদিন ব্যবহার করতে কিছুটা শক্ত থেকে খুঁজে পেয়েছি। তবে ওয়াইএমএমভি।

                                    এসএমএস ভিমডিফ


1
দুর্ভাগ্যক্রমে আপনার স্ক্রিনশটে দৃশ্যমান নয় এমন মেল্ডের একটি দুর্দান্ত বৈশিষ্ট্য হ'ল উত্স কোড ফাইলগুলির সিনট্যাক্স হাইলাইট
manatwork

হ্যাঁ। আমি সবসময় ভিমডিফ ব্যবহার করতাম, আমি তখন থেকে মেল্ড ব্যবহারে চলে এসেছি, আমি এটি ব্যবহার করা আরও সহজ মনে করি এবং এটি আমাকে বনাম ভিমডিফ কী বলছে তা দেখতে আরও সহজ।
slm

@ মান্যাটওয়ার্ক - উত্তরের সাথে আপনার লিঙ্কটি যুক্ত হয়েছে, প্রতিক্রিয়াটির জন্য ধন্যবাদ!
slm

1
উত্স কোডের জন্য দুর্দান্ত দেখাচ্ছে, তবে লগ ফাইলগুলির তুলনা করার জন্য তেমন কিছু নয়। আমি প্রায়শই সোর্স ফাইলের জন্য কলর্ডিফ.অর্গcolordiff থেকে ব্যবহার করি । আমার বোঝার জন্য, আউটপুট কোনও পার্থক্য না হলেও কিছুটা ভিন্ন বিকল্পের সাথে সমান । প্লেইন ডিফের জন্য কিছু ভাল বিকল্প দেখানোর জন্য +1। sdiffdiff -y
লেকেনস্টেইন

আমি কখনও কলর্ডিফ ব্যবহার করি নি, আমাকে এটি পরীক্ষা করে দেখতে হবে। আপনি সঠিক diff -y। এই স্যুইচটিতে সংযোজনটি diffকোনও এক সময় ঘটেছে বলে মনে হয়, বা আমি এটি কখনই লক্ষ্য করি নি। অতিরিক্তভাবে এখানে gnu ডিফ সরঞ্জামগুলির সংস্থান পৃষ্ঠাতে একটি লিঙ্ক । সরঞ্জামগুলির এই স্যুটটি ব্যবহারের জন্য ভাল স্টাফ।
slm

20

বর্তমানে আমি গ্রাইপ বিভিন্ন লাইন ফিল্টার করে পাশাপাশি পাশের ডিফ ব্যবহার করছি:

diff -y -W250 log.txt log2.txt | expand | \
    grep -E -C3 '^.{123} [|<>]( |$)' | colordiff | less -rS
  • বিকল্পটি -W250আউটপুটটিকে আরও বিস্তৃত করে তোলে যাতে আমি আরও ডেটা দেখতে পারি।
  • expand ট্যাবগুলিকে স্পেসে রূপান্তর করতে প্রয়োজনীয়
  • -C3 গ্রেপ আউটপুটে 3 লাইন প্রসঙ্গ যুক্ত করে।
  • ^.{123} পাশের পার্শ্ব পার্থক্য চিহ্নিতকারীগুলির আগে ডেটার অর্ধেকটি মিলছে।
  • colordiff আউটপুট অনুসরণ করতে prettier তোলে
  • less -rSএএনএসআই রঙগুলিকে ব্যাখ্যার অনুমতি দেয় ( -r) এবং মোড়ানো লাইনগুলি ( -S) প্রতিরোধ করে ।

এটি একটি হ্যাক, বিকল্পগুলি স্বাগত।


1
এটা চমৎকার.
প্যাট মাইরন

ভাল যুক্তি. দুর্ভাগ্যক্রমে grepরেজেক্স খুব ধীর। এছাড়াও diffটি -tট্যাব প্রসারিত করতে বিকল্প।
টিএমএমএম

12

কেউ এখনও আইসিডিফ উল্লেখ করেনি? এটা দুর্দান্ত! পিক নিজেই কথা বলে: icdiff


এটি একটি খুব ঝরঝরে সরঞ্জাম, এটি অরতেও উপলব্ধ।
উজুমাকি ডি Ichigo

বড় ফাইলগুলির জন্য যদিও খুব ধীর।
টিএমএমএম

0

লিনাক্স "এসডিফ" কমান্ডটি সমস্ত লাইন সহ ডিফল্টভাবে পাশাপাশি পার্থক্য দেখায়, তবে আপনি কেবলমাত্র পার্থক্য দেখানোর জন্য বিভিন্ন বিকল্প ব্যবহার করতে পারেন:

sdiff -tWBs -w $COLUMNS config.xml config.xml.original

কোথায়

-t: ফাঁকা জায়গায় ট্যাব অনুবাদ করুন

-ডাব্লু: হোয়াইটস্পেসের পার্থক্য উপেক্ষা করুন

-বি: ফাঁকা লাইন উপেক্ষা করুন

-s: একই লাইন উপেক্ষা করুন

-w $ COLUMNS: স্ক্রিনের পুরো প্রস্থ ব্যবহার করুন

প্রদর্শিত লাইনগুলি |,,, বা> দ্বারা ভাগ করা হবে - ডকুমেন্টেশন দেখুন, বা কেবল এটি চেষ্টা করুন।

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