Ps command and awk - shorten characters


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Ps command and awk - shorten characters
# 1  
Old 04-11-2014
Ps command and awk - shorten characters

Code:
ps -e -o pcpu -o pid -o user -o args | sort -k 1 | tail -6r

 %CPU     PID     USER COMMAND
  0.3  223220     root /usr/tivoli/tsm/client/ba/bin/dsmc sched 
  0.2  411332     root /usr/sbin/syslogd 
  0.1   90962     root /usr/sbin/syncd 60 
  0.0 10572  root -ksh 
  0.0  94270  root -ksh

in the above, the COMMAND column can contain process names or syntaxes that are extremely long. is there a one liner awk command i can use with the above ps command that will limit the number of characters, specifically those under the COMMAND column? I'd like to limit them to just 60 characters.

OS:
AIX

Shell:
sh
# 2  
Old 04-11-2014
man fold
.... | cut -c 1-60

Last edited by vgersh99; 04-11-2014 at 03:51 PM..
# 3  
Old 04-11-2014
You may try something like this,

Code:
awk '{x = index($0,$4);$0 = substr($0,1,x-1) substr($0,x,60)}1'

Code:
ps -e -o pcpu -o pid -o user -o args | sort -k 1 | tail -6r | awk '{x = index($0,$4);$0 = substr($0,1,x-1) substr($0,x,60)}1'


Last edited by Akshay Hegde; 04-11-2014 at 04:23 PM.. Reason: replacement of match with index for simplification..
This User Gave Thanks to Akshay Hegde For This Post:
# 4  
Old 04-11-2014
Or use comm instead that will give simple name of executable:
Code:
ps -eo pcpu,pid,comm

# 5  
Old 04-11-2014
Quote:
Originally Posted by Akshay Hegde
You may try something like this,

Code:
awk '{x = index($0,$4);$0 = substr($0,1,x-1) substr($0,x,60)}1'

Code:
ps -e -o pcpu -o pid -o user -o args | sort -k 1 | tail -6r | awk '{x = index($0,$4);$0 = substr($0,1,x-1) substr($0,x,60)}1'

You can further simplify that to:
Code:
awk '{x = index($0,$4);print substr($0,1,x+60)}'

These 2 Users Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shorten header of protein sequences in fasta file to only organism name

I have a fasta file as follows >sp|Q8WWQ8|STAB2_HUMAN Stabilin-2 OS=Homo sapiens OX=9606 GN=STAB2 PE=1 SV=3 MMLQHLVIFCLGLVVQNFCSPAETTGQARRCDRKSLLTIRTECRSCALNLGVKCPDGYTM ITSGSVGVRDCRYTFEVRTYSLSLPGCRHICRKDYLQPRCCPGRWGPDCIECPGGAGSPC NGRGSCAEGMEGNGTCSCQEGFGGTACETCADDNLFGPSCSSVCNCVHGVCNSGLDGDGT... (3 Replies)
Discussion started by: jerrild
3 Replies

2. Shell Programming and Scripting

Shorten header of protein sequences in fasta file

I have a fasta file as follows >sp|O15090|FABP4_HUMAN Fatty acid-binding protein, adipocyte OS=Homo sapiens GN=FABP4 PE=1 SV=3 MCDAFVGTWKLVSSENFDDYMKEVGVGFATRKVAGMAKPNMIISVNGDVITIKSESTFKN TEISFILGQEFDEVTADDRKVKSTITLDGGVLVHVQKWDGKSTTIKRKREDDKLVVECVM KGVTSTRVYERA >sp|L18484|AP2A2_RAT AP-2... (3 Replies)
Discussion started by: alexypaul
3 Replies

3. UNIX for Dummies Questions & Answers

How can i use function for the below script to shorten it?

Hi All, i worte a shell script which will zcat the .gz file and write it in to a tmp file and then again cat the file and convert it to Dos mode. Next step is i am greping the file to search for the particular string on the 1st line and if the string does not exits it will insert the 1st line... (1 Reply)
Discussion started by: vikatakavi
1 Replies

4. UNIX for Dummies Questions & Answers

How to shorten my code?

salary_range_report() { echo -e ${underline}$redYellow"\nSalary Range Report\n" tput sgr0 count_0_to_999=0 count_1000_to_2999=0 count_2000_to_5999=0 count_6000_to_9999=0 count_10000_above=0 for i in `cut -d "," -f4 $PAYROLL` #Loop Salary do if && then let... (4 Replies)
Discussion started by: eggisbad
4 Replies

5. Shell Programming and Scripting

Awk command to replace specific position characters.

Hi, I have a fixed width file. The way this file works is say for example there are 30 columns in it each with different sizes say 10,5,2, etc... If data in a field is less than the field size the rest of it is loaded with spaces. I would like an awk command to that would replace I have... (8 Replies)
Discussion started by: pinnacle
8 Replies

6. Shell Programming and Scripting

script to shorten usernames and output to file

Hopefully someone here can point me in the correct direction. I'm working on a username migration and am trying to map my users ols usernames to the new ones. Right now every user has a username of firstname.lastname i.e. john.doe I'm trying to create a bash or python script that will take... (3 Replies)
Discussion started by: binary-ninja
3 Replies

7. Shell Programming and Scripting

awk command in script gives error while same awk command at prompt runs fine: Why?

Hello all, Here is what my bash script does: sums number columns, saves the tot in new column, outputs if tot >= threshold val: > cat getnon0file.sh #!/bin/bash this="getnon0file.sh" USAGE=$this" InFile="xyz.38" Min="0.05" # awk '{sum=0; for(n=2; n<=NF; n++){sum+=$n};... (4 Replies)
Discussion started by: catalys
4 Replies

8. Shell Programming and Scripting

Using awk with the date command and escape characters

I have a file that is a log file for web traffic. I would like to convert the timestamp in it to unix time or epoch time. I am using the date command in conjunction with awk to try to do this. Just myfile: 28/Aug/1995:00:00:38 1 /pub/atomicbk/catalog/home.gif 813 28/Aug/1995:00:00:38 1... (3 Replies)
Discussion started by: jontjioe
3 Replies

9. Shell Programming and Scripting

Howto shorten script in a busybox environment by using for loops?

My satellite receiver is equipped with busybox, so a small linux version. That is why I can not use certain commands like #tomorrow in date commands or #date -d &quot;+1 day&quot; and thus I have to use: day1=$ I want to download every day 6 files from the internet but the filenames consist of the date... (6 Replies)
Discussion started by: ni_hao
6 Replies
Login or Register to Ask a Question