স্ট্রিং থেকে তারিখ পার্স করা

Bash:
স্ট্রিং থেকে তারিখ পার্স করা

কিভাবে:

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

উদাহরণ ১: একটি তারিখ স্ট্রিং এক্সট্রাক্ট করে অন্য একটি ফর্ম্যাটে রূপান্তর করা।

ধরুন আপনার কাছে yyyy-mm-dd ফর্ম্যাটের একটি তারিখ আছে এবং আপনি তা dd-mm-yyyy ফর্ম্যাটে রূপান্তর করতে চান।

original_date="2023-04-01"
formatted_date=$(date -d $original_date '+%d-%m-%Y')

echo $formatted_date

স্যাম্পল আউটপুট:

01-04-2023

এটি date কমান্ডের -d অপশনকে ইনপুট তারিখ স্ট্রিং নির্দিষ্ট করতে ব্যবহার করে, এবং +%d-%m-%Y ফর্ম্যাটকে আউটপুটে সাজানোর জন্য ব্যবহার করে।

উদাহরণ ২: awk ব্যবহার করে একটি স্ট্রাকচারড টেক্সট লাইন থেকে তারিখ পার্স এবং রূপান্তর করা।

ধরুন, আপনার কাছে একটি লগ ফাইল লাইন আছে:

2023-04-01 12:00:00 User logged in

আপনি awk এবং date ব্যবহার করে তারিখ অংশটি এক্সট্রাক্ট করে এবং রূপান্তর করতে পারেন।

log_line="2023-04-01 12:00:00 User logged in"
date_part=$(echo $log_line | awk '{print $1}')
formatted_date=$(date -d $date_part "+%A, %B %d, %Y")

echo $formatted_date

স্যাম্পল আউটপুট:

Saturday, April 01, 2023

এই উদাহরণটি awk ব্যবহার করে লগ লাইনটিকে বিভক্ত করে তারিখ অংশটি এক্সট্রাক্ট করতে ($1 প্রথম স্পেস-বিভাজিত ক্ষেত্রটিকে প্রকাশ করে), এবং তারপর date ব্যবহার করে তা রিফর্ম্যাট করতে।

থার্ড-পার্টি টুলস ব্যবহার

আরও জটিল পার্সিংয়ের জন্য বা যখন বিভিন্ন ধরনের তারিখ ফর্ম্যাটের সাথে ডিল করতে হয়, তখন থার্ড-পার্টি টুলসের মত dateutils খুবই কার্যকর।

dateutils এর সাথে উদাহরণ:

ধরুন, আপনার কাছে একটি মানদণ্ডবহির্ভূত ফর্ম্যাটের তারিখ স্ট্রিং আছে, যেমন, April 01, 2023

original_date="April 01, 2023"
formatted_date=$(dateconv -i "%B %d, %Y" -f "%Y-%m-%d" <<< $original_date)

echo $formatted_date

স্যাম্পল আউটপুট:

2023-04-01

এই কমান্ডটি dateutils থেকে dateconv ব্যবহার করে, ইনপুট ফর্ম্যাটটি -i দিয়ে নির্দিষ্ট করে এবং কাঙ্খিত আউটপুট ফর্ম্যাটটি -f দিয়ে নির্দেশ করে। dateutils ব্যাপক পরিসরের তারিখ এবং সময়ের ফর্ম্যাটগুলি সমর্থন করে, যা Bash স্ক্রিপ্টগুলিতে তারিখ পার্সিং টাস্কের জন্য এটিকে খুবই বহুমুখী করে তোলে।