awk output to ps


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk output to ps
# 1  
Old 03-14-2012
awk output to ps

Ok, I have been trying my very best to solve this, but with no success.

My goal is to write a 'before' and 'after' script to track which processes are added after starting a program.
I will use it to track what been added when I install programs that autostart, and probably call that script whenever I install a program from cli.

first I save the processes - so far no problem.
Code:
 ps -e > ./before

Then I want to exclude the processes which I saved .
Code:
cat ./before |awk '$1{printf "%s ",  $1 }' | xargs ps -N > ./after

= FAIL

Smilie

I am thankfoul to every comment and / or ideas to go another direction to get the needed result.

/Swepter

Last edited by Swepter; 03-14-2012 at 08:02 PM.. Reason: error describing in what I am trying to do
# 2  
Old 03-14-2012
You don't need to use printf to put them all in a line for xargs, just one on a line works too.

That's also a useless use of cat.

I think it failed because you're failing to exclude things like the first line. This works here:

Code:
ps -e | awk '(NR>1) && ($0=$1)' > before
xargs ps -N < before

Also beware that, if the number of processes on the system exceeds the maximum number of arguments, ps -N will be split into two calls, which will produce very wrong results.

Last edited by Corona688; 03-15-2012 at 04:04 PM.. Reason: silly mistake
# 3  
Old 03-15-2012
I don't really understand ...
My idea is to save the complete output of ps -e to the file named ./before (I want to keep the file for future), and then use the first columns as input for the processes to exclude when saving the next output of ps, hence the -N switch. (I should rather name the file to diff_after).

Also - when trying to execute the last line in your example, I got this error:

bash: after: No such file or directory

which to me seems naturally as it performs a read from the file which is not yet created.

And yes, I am quite noobish - so maybe I am doing something wrong when following your example.?

Last edited by Swepter; 03-15-2012 at 03:52 AM..
# 4  
Old 03-15-2012
Code:
ps -e > ./before
awk 'NR>1 {print $1}' ./before | xargs ps -N > ./after

This User Gave Thanks to balajesuri For This Post:
# 5  
Old 03-15-2012
Quote:
Originally Posted by balajesuri
Code:
ps -e > ./before
awk 'NR>1 {print $1}' ./before | xargs ps -N > ./after

That seems to work, thankyou :-)
# 6  
Old 03-15-2012
Quote:
Originally Posted by Swepter
Also - when trying to execute the last line in your example, I got this error:

bash: after: No such file or directory

which to me seems naturally as it performs a read from the file which is not yet created.
Ooof. My bad. I meant to use the 'before' file. I had both hanging around after a lot of fiddling to get it to work, so it worked anyway...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk output yields error: awk:can't open job_name (Autosys)

Good evening, Im newbie at unix specially with awk From an scheduler program called Autosys i want to extract some data reading an inputfile that comprises jobs names, then formating the output to columns for example 1. This is the inputfile: $ more MapaRep.txt ds_extra_nikira_usuarios... (18 Replies)
Discussion started by: alexcol
18 Replies

2. Shell Programming and Scripting

awk output

hello all input file AAA: XXX1 CCC: DD SS SSS: SSS1 BBBB: ASAS ZZZ: ZZZZZ1 XXX: XXXXXXXXXXXXXXX1 PPPP: PPPPPP1 RRRR: 111111111 ZZZ: ZZZZZ2 XXX: XXXXXXXXXXXXXXX2 PPPP: PPPPPP2 RRRR: 222222222 ZZZ: ZZZZZ3 XXX: XXXXXXXXXXXXXXX3 PPPP: PPPPPP3 RRRR: 33:33:33:33:33 (2 Replies)
Discussion started by: vikus
2 Replies

3. Shell Programming and Scripting

awk question : system output to awk variable.

Hi Experts, I am trying to get system output to capture inside awk , but not working: Please advise if this is possible : I am trying something like this but not working, the output is coming wrong: echo "" | awk '{d=system ("date") ; print "Current date is:" , d }' Thanks, (5 Replies)
Discussion started by: rveri
5 Replies

4. Shell Programming and Scripting

Awk script to run a sql and print the output to an output file

Hi All, I have around 900 Select Sql's which I would like to run in an awk script and print the output of those sql's in an txt file. Can you anyone pls let me know how do I do it and execute the awk script? Thanks. (4 Replies)
Discussion started by: adept
4 Replies

5. Shell Programming and Scripting

help on awk---- need to assign the output of awk to a variable

hi i want to find the size of a folder and assign it to a variable and then compare if it is greater than 1 gb. i am doin this script, but it is throwing error.... #!/bin/ksh cd . | du -s | size = awk '{print $1}' if size >= 112000 then echo size high fi ERROR : (4 Replies)
Discussion started by: Nithz
4 Replies

6. Shell Programming and Scripting

awk: round output or delimit output of arithmatic string

I have a file with the following content. > cat /tmp/internetusage.txt 6709.296322 30000 2/7/2010 0.00I am using the following awk command to calculate a percentage from field 1 and 2 from the file. awk '{ print $1/$2*100 }' /tmp/internetusage.txt This outputs the value "22.3643" as a... (1 Reply)
Discussion started by: jelloir
1 Replies

7. Shell Programming and Scripting

Parse file using awk and work in awk output

hi guys, i want to parse a file using public function, the file contain raw data in the below format i want to get the output like this to load it to Oracle DB MARWA1,BSS:26,1,3,0,0,0,0,0.00,22,22,22.00 MARWA2,BSS:26,1,3,0,0,0,0,0.00,22,22,22.00 this the file raw format: Number of... (6 Replies)
Discussion started by: dagigg
6 Replies

8. Shell Programming and Scripting

scripting/awk help : awk sum output is not comming in regular format. Pls advise.

Hi Experts, I am adding a column of numbers with awk , however not getting correct output: # awk '{sum+=$1} END {print sum}' datafile 2.15291e+06 How can I getthe output like : 2152910 Thank you.. # awk '{sum+=$1} END {print sum}' datafile 2.15079e+06 (3 Replies)
Discussion started by: rveri
3 Replies

9. Shell Programming and Scripting

Same awk gives different output:

nawk -F"|" '{for (i=1;i<=NF;i++) {gsub("^*", "",$i);gsub("*$", "",$i)}}1' OFS="|" file | wc -l 1000 nawk -F"|" '{for (i=1;i<=NF;i++) {gsub("^*", "",$i);gsub("*$", "",$i);print $0}}' OFS="|" file | wc -l 22000 The above awk command are same but with different printing... (1 Reply)
Discussion started by: pinnacle
1 Replies

10. Shell Programming and Scripting

awk output

could any one tell me why the following code is working in infinite loop every time it is asking for no. even though it does not have for loop #!/bin/awk -f BEGIN { print "type a number"; } { print "The square of ", $1, " is ", $1*$1; print "type another number"; } END { ... (3 Replies)
Discussion started by: useless79
3 Replies
Login or Register to Ask a Question