Problem with IF - CAT - GREP in simple shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with IF - CAT - GREP in simple shell script
# 1  
Old 07-16-2009
Problem with IF - CAT - GREP in simple shell script

Hi all,

Here is my requirement

I have to search 'ORA' word in out.log file,if it is present then i need to send that file (out.log) content to some mail id.If 'ORA' word is not in that file then i need to send 'load succesful' message to some mail id.

The below the shell script is not giving expected result.Please help me to get correct script


Code:
if [{cat out.log | grep -c "ORA"}  -eq  1]
then
echo out.log
   exit 0
 else
   echo "Load Succes"
fi


Regards
Mak

Last edited by Neo; 07-16-2009 at 08:26 AM.. Reason: code tags
# 2  
Old 07-16-2009
Code:
grep -c "ORA" outlog 1>/dev/null

if [ $? -eq 0 ]  ## some oracle error
then
echo out.log  
######## can mail to the user 
   exit 0
 else
   echo "Load Succes"
###### can mail to the user 
fi

check the mail command and it's option.
# 3  
Old 07-16-2009
Quote:
Originally Posted by panyam
Code:
grep -c "ORA" outlog 1>/dev/null

if [ $? -eq 0 ]  ## some oracle error
then
echo out.log  
######## can mail to the user 
   exit 0
 else
   echo "Load Succes"
###### can mail to the user 
fi

check the mail command and it's option.
Hi Panyam,

Your script is nice. But instead of

grep -c "ORA" outlog 1>/dev/null

You can use

grep -q "ORA" outlog


This has the advantage that it will not write any thing on standard out put so no re-direction is required. Also it will exit with success on the first occurance of "ORA", will not search file till the end which is not required.
# 4  
Old 07-16-2009
thanks a lot Panyam
# 5  
Old 07-16-2009
Quote:
Originally Posted by ranjithpr
Hi Panyam,

Your script is nice. But instead of

grep -c "ORA" outlog 1>/dev/null

You can use

grep -q "ORA" outlog


This has the advantage that it will not write any thing on standard out put so no re-direction is required. Also it will exit with success on the first occurance of "ORA", will not search file till the end which is not required.
This is interesting... I would suggest using -w option also i.e. grep -q -w to make sure ORA is the same as we want.
# 6  
Old 07-16-2009
Quote:
Originally Posted by ranjithpr
Hi Panyam,

Your script is nice. But instead of

grep -c "ORA" outlog 1>/dev/null

You can use

grep -q "ORA" outlog


This has the advantage that it will not write any thing on standard out put so no re-direction is required. Also it will exit with success on the first occurance of "ORA", will not search file till the end which is not required.

Thanks Ranjith for the efficient idea Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Incredibly inefficient cat | grep script

Hi there, I have 2 files that I am trying to work on. File 1 contains a reference list of unique subscriber numbers ( 7 million entries in total) File 2 contains a list of the subscriber numbers and their tariff (15 million entries in total). This file is in the production system and... (12 Replies)
Discussion started by: Cludgie
12 Replies

2. Shell Programming and Scripting

Shell Script (simple problem)

I want to find and replace string from files present in one directory. user will input the string to be searched and to replace . Here is my program but Not working echo "Enter Old domain name:" read old echo "Enter New domain name:" read new grep -rl '$old' /var/www/ | xargs sed -i... (4 Replies)
Discussion started by: sunny2802
4 Replies

3. Shell Programming and Scripting

Simple grep script

I'm trying to write a simple script to identify every user who tried to “sudo” on the system. I have the first portion down to grep the log file grep “sudo” /var/log/secure. What I want to do is have the script identify the person just one time not every instance the user tried... (4 Replies)
Discussion started by: bouncer
4 Replies

4. Shell Programming and Scripting

problem writing a simple c shell script

#!/bin/csh echo hello world this is what i got in a text file called ss1. i type "chmod 755 ss1.txt" to make it executable. then when i type ss1 or ss1.txt it says "ss1 command not found" what am i doing wrong? (19 Replies)
Discussion started by: pantelis
19 Replies

5. Shell Programming and Scripting

Simple Shell Script to Grep

Hi guys, I have written this script, however the outcome is invalid. It contains grep search that is not needed: Script: #!/bin/bash #this is a test script FILES=$(ls /home/student/bin/dir1/*) GREPFUNC=$(grep -E -i "login|Successfully" ORProxyTC`date '+%m%d%Y'`*.txt/ ${FILES})... (14 Replies)
Discussion started by: DallasT
14 Replies

6. Shell Programming and Scripting

simple for loop/cat issue

ok.. so problem is: I have a file that reads: cat 123 1 and 2 3 and 4 5 and 6 I was using for loops to run through this information. Code: for i in `cat 123` do echo $i done shouldn't the output come as 1 and 2 (3 Replies)
Discussion started by: foal_11
3 Replies

7. Shell Programming and Scripting

one simple shell script problem

Hi everyone, I am facing to one shell script problem, which is as following Write a shell script that: Takes a number of arguments. For each argument, print out all files in the current directory that contain this substring in their name. I know I need to use grep for the second... (7 Replies)
Discussion started by: shaloovia
7 Replies

8. Shell Programming and Scripting

cat in the command line doesn't match cat in the script

Hello, So I sorted my file as I was supposed to: sort -n -r -k 2 -k 1 file1 | uniq > file2 and when I wrote > cat file2 in the command line, I got what I was expecting, but in the script itself ... sort -n -r -k 2 -k 1 averages | uniq > temp cat file2 It wrote a whole... (21 Replies)
Discussion started by: shira
21 Replies

9. UNIX for Dummies Questions & Answers

problem with (probably) grep in shell script

Hi, im new to unix and i don't know much about shell. So i have something like this: LINK=`cat $FILE | egrep -A 3 "Ep.$EPI" | egrep "onclick" | cut -d"\"" -f2 | head -1`$FILE holds html source code and i try to cut some urls out of it. This works well in the command line, but not in my... (1 Reply)
Discussion started by: proxy_
1 Replies

10. UNIX for Dummies Questions & Answers

simple shell script problem

hi all. i have a little problem. im basically reading input from the user from the keyboard into the variable "phonenumber". I want to do a little error check to check if the user doesnt enter anything in for the value phonenumber. i had this: read phonenumber if then ..... else ........ (2 Replies)
Discussion started by: djt0506
2 Replies
Login or Register to Ask a Question