কীভাবে আমি আউটপুট -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.