Sponsored Content
Top Forums Shell Programming and Scripting Shell script (KSH) to list ONLY the ID of male employees whose last loging time was during the last Post 302598333 by kalpeer on Tuesday 14th of February 2012 06:06:41 AM
Old 02-14-2012
MySQL

i done a little modification to my script and display the last two days and today report
Code:
#! /bin/bash

#retrieve current date and month
da_date="`date +%d`"
#da_date="2"
da_month=`date "+%m"`
#da_month="02"

 prev_date=0
 prev_mon=0
da_year=`date "+%Y"`
# Check  whether date is above 3
if [ "$da_date" -ge "3" ];then
  da_dat=`expr $da_date - 3`
  da_dat="""$da_dat"
else
 # If date is 2, it display the record of 2,1 and last day of previous month
 if  [ "$da_date" -eq "2" ];then
  da_dat=2
  prev_mon=`expr $da_month - 1`
  prev_date=`cal $prev_mon $da_year | xargs -n1 | tail -1`
  prev_date="""$prev_date"
 else
 # If date is 1, it display the record of 1 and last two days of previous month
   da_dat=1
  prev_mon=`expr $da_month - 1`
  prev_date=`cal $prev_mon $da_year | xargs -n1 | tail -2| head -1`
  prev_date="""$prev_date"

  fi
fi

while read line1
do
line=`echo $line1 |grep -v Employee  |  awk '{if($2=="M") print $4}'`
if [ ! -z "$line" ];then
op_da=`echo $line | awk -F/ '{print $2}'`
op_mo=`echo $line | awk -F/ '{print $1}'`
op_year=`echo $line | awk -F/ '{print $3}'`

#if date is 3 and above following block will be executed
if [ \( \( "$da_dat" -eq "`expr $op_da - 3`" \) -o  \( "$da_dat" -eq "`expr $op_da - 2`" \) -o  \( "$da_dat" -eq "`expr $op_da - 1`" \) \) \
 -a \( "$op_mo" -eq "$da_month" \) -a \( "$op_year" -eq "$da_year" \) -a \( "$prev_date" -eq "0" \)  ];then
 echo $line1 | awk '{print $1}'
 #echo $line1
fi

#if date is 2 or 1 following block will be executed
if [ \( "$da_dat" -lt "3" \) -a \( \
 \( \( "$op_da" -ge "$prev_date" \) -a \( "$op_mo" -eq "$prev_mon" \) -a "$op_year" -eq "$da_year" \) -o \
\( \( "$op_da" -le "$da_dat" \) -a  \( "$op_mo" -eq "$da_month" \) -a \( "$op_year" -eq "$da_year" \) \) \) ];then

 echo $line1 | awk '{print $1}'
 #echo $line1
fi

fi
done < inp6

Input: inp6
Code:
Employee  Gender    NAME      Last Login
    ID                                       Time
-------------------------------------------------
210125       M         ABC         02/03/2012 08:07
451235       F         EFG         02/02/2012 16:53
241567       M         GHI         02/01/2012 14:03
314584       M         JKL         02/02/2012 12:43
123456       M         MNO         02/12/2012 00:00
654321       F         PQR         02/12/2012 00:00
210120       M         ZVF         02/03/2012 08:07
451230       F         UNM         02/02/2012 16:53
241560       M         IOP         02/05/2012 14:03
314580       M         UOP         02/04/2012 12:43
123450       M         MNN         02/12/2012 00:00
654320       F         PQP         02/11/2012 00:00
65430       M         PQP         01/30/2012 00:00
65432       M         PQP         01/31/2012 00:00
245432       M         PQP         01/29/2012 00:00

When i execute the script i got the below output.
Output
Quote:
123456
123450
Today date is 02/14/2012.
It displayed the record from 02/12/2012 to 02/14/2012.

123456 M MNO 02/12/2012 00:00
123450 M MNN 02/12/2012 00:00


Thanks,
Kalai
This User Gave Thanks to kalpeer For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Unix Shell Scripting -- update employees not present in input file

ALL, My shell script takes a employee file as input. I have to identify the list of employees not in the input file and update their status in the database. Approach I followed: by traversing through the input file add all the emplid's to a variable. update the status of employees not in... (2 Replies)
Discussion started by: sailussr
2 Replies

2. Shell Programming and Scripting

Help with ksh shell script

I am using /usr/bin/ksh in AIX I am reading the values of $dbname, $dbatmpdir/dbdir.$$, and $scope from a different file All I have to do is check if $dbname exists in file $dbatmpdir/dbdir.$$ and $scope should have a value either 'TABLE' or 'SCHEMA'. When I execute the following code. I am... (3 Replies)
Discussion started by: tenderfoot
3 Replies

3. Shell Programming and Scripting

what does this ksh shell script do?

Can someone tell me when the script is called, what does it do? I can't see it is going to run anything. (1 Reply)
Discussion started by: dp100022
1 Replies

4. Shell Programming and Scripting

Shell script to convert epoch time to real time

Dear experts, I have an epoch time input file such as : - 1302451209564 1302483698948 1302485231072 1302490805383 1302519244700 1302492787481 1302505299145 1302506557022 1302532112140 1302501033105 1302511536485 1302512669550 I need the epoch time above to be converted into real... (4 Replies)
Discussion started by: aismann
4 Replies

5. Shell Programming and Scripting

time calculation in ksh script

I"m trying to calculate the duration of of backup within a ksh shell script but I get an error. #!/bin/ksh STTIM=`date '+%T'` EDTIM=`date '+%T'` .... .... echo "DURATION OF BACKUP: $((EDTIM - STTIM))" (5 Replies)
Discussion started by: Bperl1967
5 Replies

6. Shell Programming and Scripting

Help with ksh Shell Script

My goal is to create a script that will check if in a test or production environment. I wrote this script to check $host variable to check which server I'm on but this script does not work. if then BASE=/home/fmtest; export BASE else BASE=/home/fmprod; export BASE fi ... (5 Replies)
Discussion started by: Bperl1967
5 Replies

7. Shell Programming and Scripting

ksh script throwing arg list too long for mv cp wc - everything

i have a ksh script which internally calls another ksh script. this inner script has simple commands like shown in the code window. In the script im trying to do a mv - it fails with arg list too long. then i try to perform cp and cat - and both are failing with similar error. :wall: How is... (4 Replies)
Discussion started by: nyc68
4 Replies

8. UNIX for Advanced & Expert Users

Help with ksh script to list, then cp files from a user input date range

Hi, I'm quite new to ksh scripting, can someone help me with this. Requirements: I need to create a script that list the files from a user input date range. e. g. format of file: *c1*log.2012-12-22-14-00* *c1*log.2012-12-22-14-00* *c1*log.2012-12-22-14-00*... (1 Reply)
Discussion started by: chococrunch6
1 Replies

9. UNIX for Dummies Questions & Answers

Help with ksh script to list files, cp it to another UNIX server

Hi, I'm quite new to ksh scripting, can someone help me with this. Requirements: I need to create a script that list the files from a user input date range. e. g. format of file: *c1*log.2012-12-22-14-00* *c1*log.2012-12-22-14-00* *c1*log.2012-12-22-14-00*... (7 Replies)
Discussion started by: chococrunch6
7 Replies

10. Shell Programming and Scripting

Need Help in ksh Script to list files older than 365 days from specified directories

Requirement is to list the files older than 365 days from multiple directories and delete them and log the list of files which are deleted to a log file. so 1 script should only list files older than 365 days for each directory separately to a folder The other script should read these files... (7 Replies)
Discussion started by: prasadn
7 Replies
All times are GMT -4. The time now is 11:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy