আমার তারিখের ফর্ম্যাটটিতে আমার একটি সমস্যা আছে। আমি একটি ফর্ম্যাট থেকে অন্যটিতে এবং তার বিপরীতে পরিবর্তন করতে চাই। আমার তারিখের ফর্ম্যাটগুলি
ফরম্যাট ঘ
YYYY-MM-DD
ফর্ম্যাট 2
MM/DD/YYYY
আমি ফর্ম্যাট 1 পরিবর্তন 2 এবং ফর্ম্যাট 2 পরিবর্তন করতে চান।
আমার তারিখের ফর্ম্যাটটিতে আমার একটি সমস্যা আছে। আমি একটি ফর্ম্যাট থেকে অন্যটিতে এবং তার বিপরীতে পরিবর্তন করতে চাই। আমার তারিখের ফর্ম্যাটগুলি
ফরম্যাট ঘ
YYYY-MM-DD
ফর্ম্যাট 2
MM/DD/YYYY
আমি ফর্ম্যাট 1 পরিবর্তন 2 এবং ফর্ম্যাট 2 পরিবর্তন করতে চান।
উত্তর:
এর জন্য জিএনইউ 'তারিখ' ব্যবহার করুন। এটি আপনার জন্য অন্যান্য ফর্ম্যাটগুলির মধ্যে রূপান্তর করবে ( date --helpফর্ম্যাটগুলির তালিকার জন্য দেখুন )।
$ date -d 2013-07-05 +%m/%d/%Y
07/05/2013
$ date -d 07/05/2013 +%F
2013-07-05
ধরে নিলাম পাঠ্য আকারে আপনার তারিখ রয়েছে যা রূপান্তরিত হওয়া দরকার
echo '2013-12-13' | awk -v FS=- -v OFS=/ '{print $2,$3,$1}'
এবং বিপরীতভাবে
echo '12/13/2013' | awk -v FS=/ -v OFS=- '{print $3,$1,$2}'
dateপদ্ধতির সাথে চেষ্টা করা উচিত , এটি অবশ্যই আরও মার্জিত
$ echo YYYY-MM-DD | { IFS=- read y m d && echo "$m/$d/$y"; }
MM/DD/YYYY
আপনার যদি সেই অনেকগুলি তারিখের সাথে ফাইল থাকে তবে প্রতি লাইনে একটি:
awk -F- -vOFS=/ '{print $2,$3,$1}' < that-file
নীচে সেড ব্যবহার:
$ echo '2013-12-13' | sed -r 's/([[:digit:]]{2,4})-([[:digit:]]{1,2})-([[:digit:]]{1,2})/\2\/\3\/\1/g'
12/13/2013
$ echo '12/13/2013' | sed -r 's/([[:digit:]]{1,2})\/([[:digit:]]{1,2})\/([[:digit:]]{2,4})/\3-\1-\2/g'
2013-12-13
ফাইলনামে তারিখের ফর্ম্যাটটি কীভাবে পরিবর্তন করবেন সে সম্পর্কে মন্তব্যে স্পষ্ট প্রশ্নের উত্তর দেওয়া, ড্রুবেনের gnu dateপদ্ধতির বিভিন্ন রূপ ব্যবহার করুন । এই কমান্ডের স্থানীয় ফোল্ডারের সমস্ত ফাইলগুলি খুঁজে বের করে, এবং পাইপ একমাত্র ফাইলের নাম xargs, বদলে dateদ্বিতীয় আর্গুমেন্ট হিসাবে রুপান্তরিত ফাইলের নাম থেকে mvযা সঞ্চালিত নামান্তর।
কমান্ডটি মূল্যায়ন করার সাথে সাথে bashভেরিয়েবল বিকল্পের অতিরিক্ত, সামান্য সার্কিটাস ব্যবহার প্রয়োজন necessarybashdate
find ./ -printf '%f\n' | xargs -I '{}' sh -c 'mv $1 $(date -j -f %Y-%m-%d $1 +%m/%d%Y)' -- {} \;