It looks like you can already produce your report just using finger, but need to add the year to lines that have a timestamp. Basically you have four line formats that you need to examine:
You don't need to do anything to the lines that have a year in them already (the 1st and 4th lines shown above). For the 2nd and 3rd lines, you can insert the current or previous year before the timestamp (or replace the timestamp) depending on whether the given month is less than the current month in this year. So, if the report you generated (as shown in message #3 in this thread) is stored in a file name report.txt, the following shell and awk script:
will produce the output:
If you just want the year and not the timestamp for data within the last six months, delete the code marked in red.
Although this was written and tested using the Korn shell, it will also work with bash or any other shell that performs standard parameter substitutions.
If you want to run this on a Solaris/SunOS system, use /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk instead of the default /usr/bin/awk.
did you change your awk to /usr/xpg4/bin/awk?
I just tested on a solaris9 and the given code by Don works perfectly... ( at the condition as mentionned in post#8 to to use a different awk for Solaris...)
I tired the code you suggested. But if
if user last Jan 11 2014 , but the above code will return Jan 11 2013. So it will not meet the requirment.
What OS and shell are you using?
Please show us an exact line of input (in CODE tags) for which the code I provided changed something like:
to:
The output I get when feeding the above lines into that script is:
Adding an unmatched single quote in the middle of an awk script can cause lots of syntax problems (such as the error you are getting here).
Spliting the string containing the abbreviated month names onto multiple lines will cause other problems depending on the current month and the months of the dates found in the data you're processing.
Try replacing the lines in the code you have written:
with something closer to the code I suggested:
This User Gave Thanks to Don Cragun For This Post:
Hi
I need to disable finger & telnet command in solaris 8
I have put the # infront of finger and telnet line in /etc/inetd.conf file. Further I have run the below command
kill -1 <process id of inetd >
But when I am running finger command it is till giving information for remote machine... (8 Replies)
$ finger yeti
Login: yeti Name: yeti
Directory: /arpa/tz/y/yeti Shell: /bin/ksh
On since Wed Apr 2 15:24 (UTC) on pts/149
Mail last read Mon Mar 31 11:08 2014 (UTC)
No Plan.
Hi there,
I am trying to... (2 Replies)
how to extract user machine name for current terminal using finger command
below command gives machinename for all session , is it possible to filter it to only currernt terminal ?
finger -b -p $LOGNAME | grep from (12 Replies)
Hi
Does anyone know if there is anyway of doing the finger command for all user id's in my enviroment. What I need to obtain is the full names of all users on the system.
I know if i do the finger command with no arguments it will list users currently logged in, but i need all users...
... (2 Replies)
I want to know the correct version of how i should use the finger command in this example below.(os is debian lenny)
(nymserver.pl is located in /home/nymserv directory.)
the two versions are :
(in/etc/inetd.conf)
finger stream tcp nowait nymuser /usr/nym/nymserv nymserv... (3 Replies)
Hello all,
my unix is bash based and the finger command output is:
Login Name Tty Idle LoginTime Office
amos.john Amos John pts/26 1 Dec 5 16:18 (77.100.22.07)
What am trying to achieve is extract the Login (amos.john) and Name (Amos John) from this output without using awk or sed.
... (1 Reply)
Hi,
iam using sunsolaris.
when you type finger command -- it dispalys information about local and remote users.
but here it shows as can't stat /dev/gold:8664
can anybody help what is the solution for this error.
previously the output came.
thanks,
shan (1 Reply)
Hello all,
Here is what I am trying to do. If a user exist, then send an echo "EXIST" or else "DOES NOT EXIST". (under HP-UX)
Kind of:
#!/usr/bin/sh
USER=mylogin
finger $USER
if $? = 0
then
echo "EXIST""
else
echo "DOES NOT EXIST"
fi (10 Replies)
I'm trying to clean up my server and I have the list of some "special" users stored on the text file like this
Now I want to write a shell script to finger all of them so I can have some kind of ideas who they are but here comes the problem....I completely forgot how to do it with shell... (3 Replies)
This is my senario.....
The user enters a userid into linux.
((I have have already scripted the command to read this userid.))
I need help in writing the script so It reads the userID and in conjuction w/ the finger command displays to the user "no plan" on the screen (so the user reads/sees... (4 Replies)