এটি প্রথমবারকে সেকেন্ডে রূপান্তরিত করে:
ps -p $PROCID -o cputime,etimes | awk -F'[: ]+' '/:/ {t=$3+60*($2+60*$1); print t,$NF}'
উদাহরণ হিসাবে, পিএস কমান্ডটি তৈরি করে:
$ ps -p 5403 -o cputime,etimes
TIME ELAPSED
01:33:38 1128931
awk
কমান্ড প্রক্রিয়া এবং আয়:
ps -p 5403 -o cputime,etimes | awk -F'[: ]+' '/:/ {t=$3+60*($2+60*$1); print t,$NF}'
5618 1128931
ব্যাখ্যা
-F'[: ]+'
এটি করোন এবং স্পেস উভয়কে ফিল্ড বিভাজক হিসাবে বিবেচনা করতে বিশ্রীকে বলে। এইভাবে, ঘন্টা, মিনিট এবং সেকেন্ড পৃথক ক্ষেত্র হিসাবে প্রদর্শিত হবে।
/:/ {t=$3+60*($2+60*$1); print t,$NF}
প্রাথমিকভাবে /:/
কোডটি কেবলমাত্র লাইনগুলিতে কাজ করার ক্ষেত্রে সীমাবদ্ধ করে that এটি শিরোনামের লাইনগুলি সরিয়ে দেয়। সেকেন্ডের সংখ্যাটি ঘন্টা, মিনিট, সেকেন্ডের মাধ্যমে গণনা করা হয় t=$3+60*($2+60*$1)
। এর জন্য ফলস্বরূপ মানটি t
অতিবাহিত সময়ের পাশাপাশি ছাপানো হয়।
হ্যান্ডলিংয়ের দিনগুলি
যদি ps
দিন, ঘন্টা, মিনিট, সেকেন্ড উত্পাদন করে তবে :
2-03:01:33
তারপরে, পরিবর্তে এই কোডটি ব্যবহার করুন:
ps -p $PROCID -o cputime,etimes | awk -F'[-: ]+' '/:/ {t=$4+60*($3+60*($2+24*$1)); print t,$NF}'
যদি দিনগুলি আউটপুট থেকে চালিত নাও হতে পারে, তবে এই সমন্বয় কমান্ডটি ব্যবহার করুন:
ps -p $PROCID -o cputime,etimes | awk -F'[-: ]+' '/:/ && NF==5 { t=$4+60*($3+60*($2+24*$1)); print t,$NF} /:/ && NF==4 {t=$3+60*($2+60*$1); print t,$NF}'