ইউনিক্স বা লিনাক্সে dd / মিমি / yyyy_hh: মিমি: এসএস: এমএসে টাইম স্ট্যাম্প প্রদর্শন করুন


26

আমার ইউনিক্স / লিনাক্সে কাঙ্ক্ষিত বিন্যাসে তারিখ এবং সময় প্রদর্শন করতে হবে। আমার কাঙ্ক্ষিত ফর্ম্যাটটি হ'ল: ডিডি / মিমি / ইয়ি এইচ: মিমি: এসএস: ইউনিক্স বা লিনাক্সে এমএস। আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে কাছে এসেছি:

echo $(date +%x_%r)

এটি ফিরে আসে:

08/20/2012_02:26:14 PM

কোন পরামর্শ?


2
আপনি ব্যবহার করছেন কোন কারণ আছে echo? এটি অপ্রয়োজনীয় বলে মনে হচ্ছে, আপনি কেবল dateসরাসরি ব্যবহার করতে পারেন
lk-

আমি বর্তমান সময়টিকে একটি প্যারামিটারে সঞ্চয় করার পরিকল্পনা করেছি এবং আউটপুট ফাইলের নামের অংশ হিসাবে এটি ব্যবহার করব।
হাঙ্ক

6
আইএসও বিন্যাসিত তারিখের স্ট্রিং ব্যবহার করবেন না কেন? ফাইলের নামগুলিতে সেগুলি / ভাল নয় ... ( en.wikedia.org/wiki/ISO_8601 )
জোহান

এই লিঙ্কটি দেখুন: ccollins.wordpress.com/2009/01/06/…

সর্বাধিক সাধারণ ফর্ম্যাটগুলি: zxq9.com/archives/795
zxq9

উত্তর:


26
date +%x_%H:%M:%S:%N

আপনার যদি এমএস হিসাবে মাত্র দুটি প্রথম সংখ্যা প্রিন্ট করতে হয়:

date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/'

এটি ভারে সংরক্ষণ করতে:

VAR=$(date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/')

1
এটি লিনাক্স-নির্দিষ্ট; এটি ওএস এক্স বা * বিএসডি-তে কাজ করে না।
সিএনএসটি

নোট% x লোকেলের তারিখের প্রতিনিধিত্ব করে। সুতরাং এটি বর্তমান লোকেলের উপর ভিত্তি করে পরিবর্তন করতে পারে। যদি আপনি সেই নির্দিষ্ট তারিখের ফর্ম্যাটটি চান তবে আপনি সম্ভবত এটি পরিষ্কারভাবে সরবরাহ করা থেকে ভাল (অন্য উত্তরগুলি নীচেও দেখানো হয়েছে) date +'%d/%m/%Y_%H:%M:%S:%N
স্টুডিজ

23

আপনি যদি ন্যানোসেকেন্ডের যথার্থতার পরিবর্তে মিলিসেকেন্ডগুলি চান তবে আপনি ব্যবহার করতে পারেন %3N পরিবর্তে %N:

$ date +'%d/%m/%Y %H:%M:%S:%3N'
12/04/2014 18:36:20:659

বা আপনার পছন্দসই ব্যবহারের সাথে $(…) :

$ echo "$(date +'%d/%m/%Y %H:%M:%S:%3N')"
12/04/2014 18:36:20:659

তবে সচেতন থাকুন, %Nএটি আপনার টার্গেট সিস্টেম বা ব্যাশ সংস্করণের উপর নির্ভর করে প্রয়োগ করা হতে পারে না। এম্বেড থাকা সিস্টেমে পরীক্ষিত জিএনইউ ব্যাশ, সংস্করণ ৪.২.৩ ((২) রিলিজ (আর্ম বিল্ড্রুট-লিনাক্স-জেনুয়াবি) no এখানে %N( দুটিও) নেই %3N:

date +"%F %T,%N"
2014-01-08 16:44:47,%N

2
দেখে মনে হচ্ছে যে ফ্রিবিএসডি বা ম্যাক ওক্স কোনওটিই সমর্থন করে না %Nবা %3N
জো

আমি যোগ করেছি echo "$(date +'%F %H:%M:%S:%3N') Failed" >> logfile.txt, তবে এটি file.file 08:21:02OURCE:184 Failedলগফাইলে লিখেছিল । আমি কি ভুল করছি?
22:25

ম্যাকোস- gdateএ হোমব্রিউ আপেল.সটাকেক্সচেঞ্জ
ফিল পিরোজকভ


0

এটার মতো কিছু

তারিখ + '% ডি /% মি /% ওয়াই_% এইচ:% এম:% এস:% এন'

ন্যানোসেকেন্ডের জন্য% এন ব্যবহৃত হয়েছে (000000000..999999999) যেহেতু আমি এখনই মিলিসেকেন্ডগুলি পাইনি


0

আপনি চেষ্টা করতে পারেন:

echo `date +"%Y_%m_%d %H:%M:%S,"``date +%N/1000000|bc -l|grep -Eo "^([0-9]{0,3})"`

কোনও কারণে '`' বাদ দেওয়া হয়েছে, তাই এটি প্রতিধ্বনি পরে এবং শেষে বা সহজভাবে রাখুন:

date +"[%Y_%m_%d %H:%M:%S,%3N]"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.