สิ่งนี้จะแปลงเป็นครั้งแรกเป็นวินาที:
ps -p $PROCID -o cputime,etimes | awk -F'[: ]+' '/:/ {t=$3+60*($2+60*$1); print t,$NF}'
ตัวอย่างเช่นคำสั่ง ps สร้าง:
$ 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'[: ]+'
สิ่งนี้บอกให้ awk ปฏิบัติต่อทั้งโคลอนและช่องว่างเป็นตัวคั่นฟิลด์ วิธีนี้ชั่วโมงนาทีและวินาทีจะปรากฏเป็นฟิลด์แยก
/:/ {t=$3+60*($2+60*$1); print t,$NF}
เริ่มต้น/:/
จำกัด รหัสให้ทำงานบนบรรทัดที่มีเครื่องหมายโคลอนเท่านั้น สิ่งนี้จะลบบรรทัดส่วนหัว 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}'