কীভাবে আমি আউটপুট -d "মান" পাইপ করব?


14

আমার একটি "2014-01-30 05:04:27 GMT" এর মতো একটি তারিখ রয়েছে এবং আমি যদি তারিখ -d "2014-01-30 05:04:27 GMT" চালাই তবে আউটপুটটি আমার সার্ভারের টাইমজোন ("থু 30 জানুয়ারী 16:04:27 EST 2014 ")।

গ্রেপ এবং কাটা ব্যবহারের সাথে, আমি একটি ফাইল থেকে জিএমটিতে তারিখটি বের করেছি। যাইহোক, আমি তখন এটির স্থানীয় সময়ে রূপান্তরিত করতে সংগ্রাম করছি।

উদাহরণ স্বরূপ:

[ব্যবহারকারী @ সার্ভার লগ] # গ্রেপ "কিছু" logfile.txt | grep "Succeeded" | | কাটা -f1 -d '['

আউটপুট: 2014-01-30 05:04:27 GMT

সেই আউটপুটটিকে "তারিখ-ডি" তে পাস করতে আমি কী যুক্ত করতে পারি?

প্রয়াস:

  • [ব্যবহারকারী @ সার্ভার লগ] # গ্রেপ "কিছু" logfile.txt | grep "Succeeded" | | cut -f1 -d '[' | | তারিখ -d
  • [ব্যবহারকারী @ সার্ভার লগ] # গ্রেপ "কিছু" logfile.txt | grep "Succeeded" | | cut -f1 -d '[' | | তারিখ
  • [ব্যবহারকারী @ সার্ভার লগ] # গ্রেপ "কিছু" logfile.txt | grep "Succeeded" | | cut -f1 -d '[' | | তারিখ -d "$ 1"

উত্তর:


13
gmt="$(grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[')"
date -d "$gmt"

বা, আপনি যদি পাইপলাইন ফর্ম্যাটটি পছন্দ করেন:

grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[' | { read gmt ; date -d "$gmt" ; }

সমস্যাটি dateস্টিডিন ব্যবহার করে না। সুতরাং, আমাদের স্টিডিনকে একটি ভেরিয়েবলের ( gmtএখানে বলা হয়) ক্যাপচার করতে হবে এবং তারপরে কমান্ড লাইনে সরবরাহ করতে হবে date

দ্বিতীয় পদ্ধতির থেকে নমুনা আউটপুট:

$ echo  "2014-01-30 05:04:27 GMT" | { read gmt ; date -d "$gmt" ; }
Wed Jan 29 21:04:27 PST 2014

1
ধন্যবাদ, এই সমস্যার সমাধান! এটি কেন কাজ করছে না তার পিছনে কারণ ব্যাখ্যা করার জন্যও আপনাকে প্রশংসা করুন।
শেন

19

আপনি যদি যথেষ্ট পরিমাণে সাম্প্রতিক কোর্টিলগুলি থেকে জিএনইউ তারিখটি ব্যবহার date -fকরেন তবে সহায়তা স্ক্রিন থেকে রয়েছে:

-f, --file=DATEFILE       like --date once for each line of DATEFILE

সুতরাং আপনার প্রচেষ্টা 4 হতে পারে:

$ grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[' | date -f -

শেষ -স্ট্যান্ডিন জন্য দাঁড়িয়েছে।


2
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
পেট্রস কে।

উপরের কমান্ডের আউটপুটকে একটি নির্দিষ্ট তারিখের সাথে তুলনা করা কি সম্ভব? যেমন। আমাকে "বুধবার 30 জানুয়ারী 21:04:27 পিএসটি 2014"
মানু

@Manu কোনটাই না, dateutils আছে dategrepনির্দিষ্ট ব্যবহারের ক্ষেত্রে জন্য।
hroptatyr

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