![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Identifying and grouping OS processes and APP processes | wilsonee | SUN Solaris | 2 | 09-30-2008 06:26 AM |
| Processes by User's actual names | kartikkumar84@g | Shell Programming and Scripting | 1 | 05-22-2008 08:52 AM |
| Processes by Actual names | kartikkumar84@g | UNIX for Dummies Questions & Answers | 2 | 05-13-2008 03:03 PM |
| Monitoring Processes - Killing hung processes | ukndoit | UNIX for Advanced & Expert Users | 4 | 01-17-2008 01:30 AM |
| user's right | iwbasts | SUN Solaris | 2 | 06-07-2006 08:54 PM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Processes by User's names
Hi All
I am being trained in unix and am tryin to write a script for listing the user Processes by user's names exactly the following manner WITHOUT USING A TEMPORARY FILE or SED OR AWK! The format of the output I want is: Code:
Code: James Hallan PID TTY TIME CMD 31799 pts/3 00:00:00 vim 31866 pts/3 00:00:00 vim 2495 pts/7 00:00:00 vim 8368 pts/0 00:00:00 vim 9544 pts/2 00:00:00 ps Peter Anderson PID TTY TIME CMD 8368 pts/0 00:00:00 vim 9544 pts/2 00:00:00 ps Code:
Code:
echo -n > processes;
for x in $user
do
LOGID=$x
while IFS=: read userID junk junk junk Name junk
do
if [ $LOGID = $userID ];
then
echo "LOGID:$LOGID Name:$Name" >> processes;
w -s ${LOGID}|cut -c'10-200' >> processes;
echo >> processes;
fi
done < /etc/passwd
done
more processes;
OUTPUT:
LOGID:james.hallan Name:James Hallan
up 5 days, 23:34, 46 users, load average: 0.22, 0.28, 0.26
TTY FROM IDLE WHAT
pts/45 172.21.2.109 3:46 vim checking
LOGID:peter.anderson Name:Peter Anderson
up 5 days, 23:34, 46 users, load average: 0.22, 0.28, 0.26
TTY FROM IDLE WHAT
pts/6 86.132.86.129 3:53 -bash
LOGID:laura.stewart Name:Laura Stewart
up 5 days, 23:34, 46 users, load average: 0.22, 0.28, 0.26
TTY FROM IDLE WHAT
pts/8 172.16.1.163 52.00s vim hangman
My trainer says its not the exact same output and as you see I have used a temporary file. How can I get rid of the temporary file and get the exact same output without using SED or AWK. The main problem I am facing is that when I use the "users" command, if a particular user is logged in from two different terminals, the output has 2 entries for that user. For eg; if james is logged in on 2 terminals, the "users" command will give print james.hallan twice on standard output. Now how do i get rid of one james.hallan entry without using sed and awk. Secondly, how do i get the output in exactly the same format. This is very frustrating for me as I am almost there and I feel kind of helpless. Any help would be appreciated. |
| Forum Sponsor | ||
|
|
|
#2
|
|||
|
|||
|
you're greping for unnecessary stuffs as I can see. can you do a sort -u to uniquely identify users for not creating multiple entries?
|
|
#3
|
|||
|
|||
|
hi incredible, i am not really using grep. also i tried using sort -u but i guess it only works with files and not varibles....i am really stuck on this!!
|
|||
| Google The UNIX and Linux Forums |
| Tags |
| load average, performance |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|