Help search in files


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help search in files
# 1  
Old 03-17-2008
Help search in files

Hi guys. I had alot of luck last time I came here but not so much this time. I've searched around the forums for awhile but can't find exactly what I'm looking for. Here is my problem.

I wrote a program that askes the user some questions. Then based off the info they entered it looks to find if a lead came in through our archives. What I need to do is when it finds $unique in the file then search UP to find the word Event arrived and display that. It isn't a set number of lines above. it can be from 1 - 100 lines above.


Archive:
XXXXXXXX
XXXXXXXX
Event arrived 13:45
XXXXXXXX
XXXXXXXX
XXXXXXXX
$unique

Code:
#!/bin/sh
############################################################
# Project: Search for Leads
# Date: 2-26-08
# Name: Adam Fowler
############################################################

clear
folder=workingdir
echo "This program will help you search for leads"
echo ""
echo "What month was the lead sent? Use 2 numbers"
read month
echo "What day was the lead sent? Use 2 numbers"
read day
echo "What hour was the lead sent? Use 2 numbers in 24hr"
read hour
echo "What do you want to search for?"
read unique
cd /usr/local/vitria/BW31/backups/archiveU174/
cp Partners.Leads.channels.UnprocessedEmail.2008-$month-$day\_$hour* $folder
cp Partners.Leads.channels.EmailIn.2008-$month-$day\_$hour* $folder
cp B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day\_$hour* $folder
cd $folder
zipped="B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day"_"$hour.gz Partners.Leads.channels.EmailIn.2008-$month-$day"_
"$hour.gz Partners.Leads.channels.UnprocessedEmail.2008-$month-$day"_"$hour.gz"
zipped2=`echo *.gz`
if [ "$zipped2" = "$zipped" ]
then
        echo "Unzipping files..."
        gunzip *.gz
        echo "Done unzipping"
fi
echo "*********************************Inbound"******************************************
fgrep "$unique" Partners.Leads.channels.EmailIn.2008-$month-$day\_$hour*
Search for $unique in the file
Search up for the words "Event arrived"
echo "*********************************Outbound"******************************************
fgrep "$unique" B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day\_$hour*
Search for $unique in the file
Search up for the words "Event arrived"
echo "****************************Outbound for Unparced***********************************"
fgrep "$unique" Partners.Leads.channels.UnprocessedEmail.2008-$month-$day\_$hour*
Search for $unique in the file
Search up for the words "Event arrived"
rm Partners.Leads.channels.EmailIn.2008-$month-$day\_$hour*
rm B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day\_$hour*
rm Partners.Leads.channels.UnprocessedEmail.2008-$month-$day\_$hour*
echo "************************************************************************************"
echo "*You should see a result for Inbound and outbound                                  *"
echo "*If you see more than 1 of each of these then find something else to search for    *"
echo "*They may have sent the lead multiple times. Check to see if the leads are the same*"
echo "*If you see it in inbound and nothing else then contact RIH support and tell       *"
echo "*them everything that you entered for the search.                                  *"
echo "************************************************************************************"

# 2  
Old 03-17-2008
Don't grep - use awk
Code:
awk -v unique="$unique" ' {
              if($1 ~ /^Event/) {event=$0}
              if(index($0, unique)>0) { print event, $0; exit}
              } ' inputfilename

# 3  
Old 03-17-2008
Thanks for the super fast response.. Will this work with Event arrived? Sorry for newb question. I've never used awk. Also I don't know if you picked up on this but "$unique" is not in the file. It is the variable that is written when asked the question "What do you want to search for?" Will this awk search for the word $unique or Homer Simpson? When i tried what you have i got this error

awk: syntax error near line 1
awk: bailing out near line 1
# 4  
Old 03-17-2008
assuming you're on Solaris...

try nawk or /usr/xpg4/bin/awk
# 5  
Old 03-17-2008
Thank you so much!!! works great! Thanks to both of you!.

Full code below for those that need it. thanks again

Code:
#!/bin/sh
############################################################
# Project: Search for Leads
# Date: 2-26-08
# Name: Adam Fowler
############################################################

clear
folder=workingdir
echo "This program will help you search for leads"
echo ""
echo "What month was the lead sent? Use 2 numbers"
read month
echo "What day was the lead sent? Use 2 numbers"
read day
echo "What hour was the lead sent? Use 2 numbers in 24hr"
read hour
echo "What do you want to search for?"
read unique
cd /usr/local/vitria/BW31/backups/archiveU174/

# copy archives to working directory
cp Partners.Leads.channels.UnprocessedEmail.2008-$month-$day\_$hour* $folder
cp Partners.Leads.channels.EmailIn.2008-$month-$day\_$hour* $folder
cp B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day\_$hour* $folder
cd $folder

# Check to see if they are zipped and unzip them
zipped="B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day"_"$hour.gz Partners.Leads.channels.EmailIn.2008-$month-$day"_"$hour.gz Par
tners.Leads.channels.UnprocessedEmail.2008-$month-$day"_"$hour.gz"
zipped2=`echo *.gz`
if [ "$zipped2" = "$zipped" ]
then
        echo "Unzipping files..."
        gunzip *.gz
        echo "Done unzipping"
fi
echo "*********************************Inbound"******************************************
/usr/xpg4/bin/awk -v unique="$unique" ' {
              if($1 ~ /^Event/) {event=$0}
              if(index($0, unique)>0) { print event, $0; exit}
              } ' Partners.Leads.channels.EmailIn.2008-$month-$day\_$hour
echo "*********************************Outbound"******************************************
/usr/xpg4/bin/awk -v unique="$unique" ' {
              if($1 ~ /^Event/) {event=$0}
              if(index($0, unique)>0) { print event, $0; exit}
              } ' B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day\_$hour
echo "****************************Outbound for Unparced***********************************"
/usr/xpg4/bin/awk -v unique="$unique" ' {
              if($1 ~ /^Event/) {event=$0}
              if(index($0, unique)>0) { print event, $0; exit}
              } ' Partners.Leads.channels.UnprocessedEmail.2008-$month-$day\_$hour

rm Partners.Leads.channels.EmailIn.2008-$month-$day\_$hour*
rm B2B.Outbound.CMHttpsHigh.channels.Out.2008-$month-$day\_$hour*
rm Partners.Leads.channels.UnprocessedEmail.2008-$month-$day\_$hour*
echo "************************************************************************************"

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search files with today date and files come anytime in between 10 pm to 1 am

Hi, i want to make script. In a directory everyday( exclude sat and sun) in between 10 pm to 1 am there are 2 files comes and when file comes it will mail us. Format for files is mentioned below. please help me on making this, and also have year end consider and if files come after 12 am it... (6 Replies)
Discussion started by: pallvi_mahajan
6 Replies

2. Shell Programming and Scripting

search information in multiple files and save in new files

hi everyone, im stuck in here with shell :) can you help me?? i have a directory with alot files (genbank files ... all ended in .gbk ) more than 1000 for sure ... and i want to read each one of them and search for some information and if i found the right one i save in new file with new... (6 Replies)
Discussion started by: andreia
6 Replies

3. Shell Programming and Scripting

search for content in files. Name of files is in another file. Format as report.

Hi I have multiple files in a folder and one file which contains a list of files (one on each line). I was to search for a string only within these files and not the whole folder. I need the output to be in the form File1<tab>string instance 2<tab> string instance 2<tab>string instance 3... (6 Replies)
Discussion started by: pkabali
6 Replies

4. Shell Programming and Scripting

"Search for files in a file and write these files to another file which sould be in some other direc

Hi , Need to shell script to extracts files names and write those to another file in different directory. input file is inputfile.txt abc|1|bcd.dat 123 david123 123 rudy2345 124 tinku5634 abc|1|def.dat 123 jevid123 123 qwer2345 124 ghjlk5634 abc|1|pqr.txt 123 vbjnnjh435 123 jggdy876... (1 Reply)
Discussion started by: dssyadav
1 Replies

5. Shell Programming and Scripting

How to access files from different directories and to perform search action in those files?

Hi, I want to access files from different directories (for example: /home/dir1/file1 , /home/dir2/file2 ...) Like this i have to access these files(file1, file2...). (3 Replies)
Discussion started by: bangarukannan
3 Replies

6. SuSE

Search all files based on first and in all listed files search the second patterns

Hello Linux Masters, I am not a linux expert therefore i need help from linux gurus. Well i have a requirement where i need to search all files based on first patterns and after seraching all files then serach second pattern in all files which i have extracted based on first pattern.... (1 Reply)
Discussion started by: Black-Linux
1 Replies

7. Shell Programming and Scripting

search files

Hello folks I Hope everyone is fine. I have list of files below aa.tph p3iu.tph a984c.c3c p8xc4.pql I want to search all above files path from /mydata. How to do it with find command with script? (1 Reply)
Discussion started by: learnbash
1 Replies

8. UNIX for Advanced & Expert Users

Search files with specfic extention and later search content

Hi, I would appriciate if somebody can help me figure out how to search for all the *.xml file under a specific directory and subdirectroies (/home/username) and later search of content "<start>" inside the xml file returned by search. -Lovin.V (2 Replies)
Discussion started by: lovi_v
2 Replies

9. Shell Programming and Scripting

search through files

Dears, I have a directory that contains many files,name of the file has a speciefied format like: B<date>-time B20080203-1510,B20080203-1520,.....etc these files contains many counters in the following format: <conter name> <counter value> I need to filter these files based on thier... (5 Replies)
Discussion started by: mm00123
5 Replies

10. Shell Programming and Scripting

search for files excluding binary files

Hi All, I need a solution on my following find command find ./.. -name '*.file' -print BTW This gives me the output as belows ./rtlsim/test/ADCONV0/infile/ad0_dagctst.file ./rtlsim/test/ADCONV0/user_command.file ./rtlsim/test/ADCONV0/simv.daidir/scsim.db.dir/scsim.db.file... (2 Replies)
Discussion started by: user_prady
2 Replies
Login or Register to Ask a Question