আজ আমি ভেবেছিলাম আমি একটি সাধারণ অপারেশন করছি:
git blame file | sort -k 3
file
তারিখ অনুসারে বাছাই করা সমস্ত লাইন পেতে যে তারিখে তারা সর্বশেষ পরিবর্তন হয়েছিল। দুর্ভাগ্যক্রমে এটি সঠিকভাবে বাছাই করা মনে হচ্ছে না। আমি নিম্নলিখিতটি করলে এটি কাজ করে :
git blame file | cut -c 20- | sort
যা কেবল লাইনের প্রথম অংশটি বন্ধ করে দেয় এবং তারপরে বাছাই করে। এই কমান্ড সাফল্যের যে আমার কাছে ইঙ্গিত sort
করতে আসলে অপারেশন আমি চেষ্টা ছিল না। কেন কাজ হয়নি?
এখানে আউটপুট থেকে একটি উদাহরণ লাইন git blame file
:
35d8e9eb (username 2007-01-17 03:58:04 +0000 155) Some text on line 155
সম্পাদনা করুন: 3
মূল কমান্ড লাইনের পাশাপাশি যে কোনও যুক্তিসঙ্গত সংখ্যা ব্যবহার করা ভাল মনে হচ্ছে - আমি হ্যাশ (ক্ষেত্র 1), ব্যবহারকারীর নাম (ক্ষেত্র 2), দিনের সময় (ক্ষেত্র 4) বা লাইন নম্বর (ক্ষেত্র) অনুসারে বাছাই করতে পারি )), তবে তারিখ (ক্ষেত্র 3) কাজ করে না - এটি আসলে কী অর্ডারে শেষ হয় তা আমি সনাক্ত করতে পারি না ...
সম্পাদনা 2: আমি একটি স্যানিটাইজড ইনপুট ফাইল তৈরি করেছি যা একই সমস্যা দেখায়। এখানে cleaned.txt
:
cb7bb041 (eeeeeee 2010-12-14 19:41:18 +0000 42)
35d8e9eb (cccccccc 2007-01-17 03:58:04 +0000 135)
d7377fa9 (hhhhhhhh 2010-01-30 04:26:28 +0000 178)
এবং আউটপুট থেকে sort -k 3 cleaned.txt
:
$ sort -k 3 cleaned.txt
cb7bb041 (eeeeeee 2010-12-14 19:41:18 +0000 42)
35d8e9eb (cccccccc 2007-01-17 03:58:04 +0000 135)
d7377fa9 (hhhhhhhh 2010-01-30 04:26:28 +0000 178)
আপনি দেখতে পাচ্ছেন যে তারিখের ক্ষেত্রের বাছাই মোটেও ঘটেছিল না। এখানে থেকে আউটপুট cut -c 20- cleaned.txt | sort
:
$ cut -c 20- cleaned.txt | sort
2007-01-17 03:58:04 +0000 135)
2010-01-30 04:26:28 +0000 178)
2010-12-14 19:41:18 +0000 42)
সেক্ষেত্রে তারিখে বাছাই করা ভাল কাজ করে! কোনও পরামর্শ?
eeeeeee
,cccccccc
এবং এবংhhhhhhhh
), তবে আসল নামগুলি প্রায়শই পরিবর্তিত হয় (উদাহরণস্বরূপ git.git এর লেখকের নাম রয়েছে যত কম এক এবং পাঁচটি পর্যন্ত পৃথক "শব্দ")। ব্যবহার-e
সাহায্য করতে পারে; এটি প্রদর্শিত ইমেল ঠিকানাগুলির কোনও স্পেস থাকার সম্ভাবনা খুব কম।