Newbie to HP Unix


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Newbie to HP Unix
# 1  
Old 02-21-2007
Newbie to HP Unix

Hi
Im a newbie to unix having been a windows guy, yes I know a swear word on here ? but part of my new job is to be trained up on Unix.

On the course we were set a task to read a file that has dates times codes etc, a log file. see below as an example

2007/02/19 00:00:06: Information: Switch SDT for out stream 510
2007/02/19 01:00:00: Information: Switch SDT for out stream 510
2007/02/19 01:59:00: Information: Switch SDT for out stream 510

My task is to look through this file and display the output for a start time and end time ?

so eg start time is 01:00:00 and end time 05:00:00

My question is how do you do this and what if the first time is 01:01:00, how do you search for this ?

My code so far is this

#! /bin/sh
rm temp.log
clear
echo "Please enter word to search for : "
read searchstring
echo "Please enter outstream to search for : "
read outstream
echo "Switch or Build : "
read switchorread
echo "Please enter search date : (yyyy/mm/dd) "
read searchdate
echo "Please enter start time : (hh:mm:ss) "
read starttime
echo "Please enter end time : (hh:mm:ss) "
read endtime
echo $searchstring $outstream $switchorread $searchdate $starttime $endtime
cat /users/duncan/shepd/xsg.log|grep -i $searchstring|grep $outstream|grep -i $switchorread|grep $searchdate >temp.log

The expamle at the top is the out put for temp.log

How can I search temp.log for a set time and end time and out put this this to screen or a file ?

Any help in point me to the right commands, rather then telling me what code I should write, Id appricate it

thanks
# 2  
Old 02-21-2007
Try something like this:
Code:
$ cat data
2007/02/19 00:00:06: Information: Switch SDT for out stream 510
2007/02/18 00:00:06: Information: Switch SDT for out stream 510
2007/02/19 01:00:00: Information: Switch SDT for out stream 510
2007/02/18 01:00:00: Information: Switch SDT for out stream 510
2007/02/19 01:59:00: Information: Switch SDT for out stream 510
2007/02/18 01:59:00: Information: Switch SDT for out stream 510
$
$
$ cat script
#! /usr/bin/ksh


timetosecs()
{
        typeset time h m s
        time=$1
        time=${time%:}
        h=${time%%:*}
        time=${time#${h}:}
        m=${time%:*}
        s=${time#*:}
        h=${h#0}
        m=${m#0}
        s=${s#0}

        echo $((h*3600+m*60+s))
}

#clear
echo  "Please enter word to search for : \c"
read searchstring
echo  "Please enter outstream to search for : \c"
read outstream
echo  "Switch or Build : \c"
read switchorread
echo  "Please enter search date : (yyyy/mm/dd) \c"
read searchdate
echo  "Please enter start time : (hh:mm:ss) \c"
read starttime
startsecs=$(timetosecs $starttime)
echo  "Please enter end time : (hh:mm:ss) \c"
read endtime
endsecs=$(timetosecs $endtime)

exec < $outstream
while read date time rest ; do
        [[ $date != $searchdate ]] && continue
        secs=$(timetosecs $time)
        ((secs<startsecs)) && continue
        ((secs>endsecs)) && continue
        echo $date $time $rest
done
$
$
$ ./script
Please enter word to search for : sjsjs
Please enter outstream to search for : data
Switch or Build : sjsjs
Please enter search date : (yyyy/mm/dd) 2007/02/19
Please enter start time : (hh:mm:ss) 01:00:00
Please enter end time : (hh:mm:ss) 02:00:00
2007/02/19 01:00:00: Information: Switch SDT for out stream 510
2007/02/19 01:59:00: Information: Switch SDT for out stream 510
$

The secret is converting time to seconds after midnight for easy comparing.
# 3  
Old 02-22-2007
A version a little more concise of Perderabo script :
Code:
#!/usr/bin/ksh

timetosecs()
{
        integer time h m s
        echo $1 | IFS=: read h m s
        echo $((h*3600+m*60+s))
}


read searchstring?"Please enter word to search for : "
read    outstream?"Please enter outstream to search for : "
read switchorread?"Switch or Build : "
read   searchdate?"Please enter search date : (yyyy/mm/dd) "
read    starttime?"Please enter start time : (hh:mm:ss) "
read      endtime?"Please enter end time : (hh:mm:ss) "

startsecs=$(timetosecs $starttime)
  endsecs=$(timetosecs $endtime)

exec < $outstream
while read date time rest ; do
        [[ $date != $searchdate ]] && continue
        secs=$(timetosecs $time)
        (( secs < startsecs && secs > endsecs ))  && continue
        echo $date $time $rest
done


Jean-Pierre~
# 4  
Old 02-22-2007
Quote:
Originally Posted by aigles
A version a little more concise of Perderabo script :
[CODE]timetosecs()
{
integer time h m s
echo $1 | IFS=: read h m s
echo $((h*3600+m*60+s))
}
That is a bit too concise. Posix has mandated that an integer which starts with a leading zero must be treated as an octal number. That means that attempting arithmetic with an integer like 09 is not legal and it will fail with many versions of ksh including the ksh supplied with recent versions of HP-UX.
You need:
h=${h#0}
m=${m#0}
s=${s#0}

I also think that limiting the scope of h, m, and s is a good idea, but using global variables causes no harm in this script as it currently exists.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

UNIX for newbie

i very newbie unix i already download FreeBSD-10.0-RELEASE-i386-disc1 but i don't know how to use it can anyone tell me, i use win 7 and i like to learn, i read a book teach your self unix in 24 hour but not told me how i do the first time do i need to made dual boot ? in windows system what... (4 Replies)
Discussion started by: hle
4 Replies

2. UNIX Desktop Questions & Answers

unix newbie

Hi everyone! Thanks for taking the time. I've installed redhat and ubunto on vmware virtually. I want to try unix and I tried to look in the internet but wasn't able to accomplish my desire task. Any links for install, download links and information will be honestly appreciated. I will be... (6 Replies)
Discussion started by: michaelttkk
6 Replies

3. UNIX for Dummies Questions & Answers

newbie in unix

hiii i have few questions..i hav just started using unix....i got two doubts or problems as per now, if anyone can clarify it or solve it, his/her help is highly appreciated.. 1) how to Rename all files which contain the sub-string 'foo', replacing it with 'bar' within a given folder. 2)How to... (1 Reply)
Discussion started by: vicky1989
1 Replies

4. OS X (Apple)

Unix Newbie...

I've a MacBook and I'm not that good to this Unix kind of a operating system, could you guys please suggest me some Unix Beginner type book to learn all the shell scripting and the whole UNIX environment (something for intermediate level)...there are thousands of books available and i don't know... (2 Replies)
Discussion started by: VasiqMz
2 Replies

5. UNIX for Dummies Questions & Answers

UNIX newbie NEWBIE question!

Hello everyone, Just started UNIX today! In our school we use solaris. I just want to know how do I setup Solaris 10 not the GUI one, the one where you have to type the commands like ECHO, ls, pwd, etc... I have windows xp and I also have vmware. I hope I am not missing anything! :p (4 Replies)
Discussion started by: Hanamachi
4 Replies

6. UNIX for Dummies Questions & Answers

I'm a newbie to unix

i have just installed UNIX 7.01 to replace a windows server2003 used for my family to share and remotely save photos i need to set it up so very novice users can view, import and export photos most of the remote users will have windows machines,i use Linux, Mac and windows. most of what i want... (2 Replies)
Discussion started by: chance63
2 Replies

7. Shell Programming and Scripting

Can we call JSP file from Unix.if so how.Please help me.Im newbie to Unix

Hi Can we call a jsp page from Unix.if so please let me know how we can.. thanks for the help in advance... thanks kumar (0 Replies)
Discussion started by: mailsukumar
0 Replies

8. UNIX for Dummies Questions & Answers

hello unix newbie

hi im new to unix i use windows on my home pc the reason i registered is because im finishing up a UNIX class this year. all i have left is the exam but i had a lot of personal problems and didnt do a lot of work; the teacher is letting me make it up but its hard for me to learn a whole unix... (1 Reply)
Discussion started by: Combat Form
1 Replies

9. UNIX for Dummies Questions & Answers

am a unix newbie

hello, first time I have posted in here....hope somebody can help. I have a sparc4 workstation loaded with solaris 8....it is asking me for a prompt and I have tried a whole bunch with no success. <actually I have this machine to mess around with linux so I would like to get rid of unix and... (12 Replies)
Discussion started by: mysticalpotato
12 Replies

10. UNIX for Dummies Questions & Answers

unix newbie

What shellscript would I use If I wanted to list all files in the current directory which are identical to a certain filename. I am told to use binary comparison but have been unable to find out what this means. I have tried man pages and can find a file of a certian filename but cant seem to... (1 Reply)
Discussion started by: gavinlow1980
1 Replies
Login or Register to Ask a Question