grep with if problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grep with if problem
# 1  
Old 07-27-2010
grep with if problem

Code:
#!/bin/ksh
a =`grep MAJOR filename | tail`
if [ $a -eq 0 ]
echo "    "
else
echo " $a "
fi

filename is like alarmlog file which had alarms in it i am trying to grep the mejor alrms from the file.if there are any major alarms i have to print them else nothing.
its giving me a syntax error.
Code:
./p.sh[3]: a:  not found
./p.sh[5]: syntax error at line 10 : `else' unexpected


Last edited by Franklin52; 07-28-2010 at 03:27 AM.. Reason: Please use code tags!
# 2  
Old 07-27-2010
Hi
2 things:
1. You are missing 'then' after if.
Code:
if [ $a -eq 0 ]; then
echo " "
else

2. Are you sure $a is a number since you are using -eq. Because from the grep it looks like it cannot be a number.

Guru.
This User Gave Thanks to guruprasadpr For This Post:
# 3  
Old 07-27-2010
Remove the space between the variable `a' and the `='
The `if' statement is missing the `then'
Remove the spaces between " and variable a in `echo " $a "'
# 4  
Old 07-28-2010
hi its not a number its an alarm file i just grep the alarms and i am still having the problem
Code:
./w.sh[3]: 2:  not found
./w.sh[5]: Alarms:  not found

Code:
#!/bin/ksh

Alarms= $(grep MAJOR file/alarm.log* | tail|wc -l)

if [ "$(Alarms)" -eq 0 ];

then

echo "    "

else

echo " $Alarms "

fi


Last edited by Franklin52; 07-28-2010 at 03:28 AM.. Reason: Please use code tags!
# 5  
Old 07-28-2010
There can not be spaces in the assignment
Code:
lvalue=rvalue

Code:
"$(Alarms)"

The quotes are recommended, the parenthesis are doing nothing.

Code:
| tail|wc -l)

tail displays ten lines by default if exist in the file, therefore wc -l return a 10 line or less, always, even if there are more.
tail is not necessary there.

Code:
echo " $Alarms "

Are you aware you're adding literal spaces in front and after any value that $Alarms holds?
# 6  
Old 07-28-2010
thank you for reply but i tried this as well it gives me an error
Code:
a=`grep MAJOR /file../../alarm.log* | wc `
if [ $a != "  " ]
 then
   echo ' $a '

fi
./f1.sh[4]: :=: unknown test operator



---------- Post updated at 01:40 AM ---------- Previous update was at 01:31 AM ----------

i have used code tags this is not whats in the original file i have used code tags after the first warning.if you want i can poaste exactly whats in the original file.should i be doing that to prve u wrong

Last edited by Franklin52; 07-28-2010 at 03:33 AM.. Reason: Please use code tags, thank you!
# 7  
Old 07-28-2010
A few things you might want to know about ksh
Explanation from the past, about the `test' in the ksh shell

ksh basics

Since you have posted many pieces, all with errors, I'll give you an example

Code:
#! /bin/ksh

alarms=$(grep MAJOR alarm.log | wc -l)

if [[ $alarm -le 0 ]]; then
    echo "Nothing to report"
else
    echo "$alarms to report"
fi

This User Gave Thanks to Aia For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sed Or Grep Problem OR Terminal Problem?

I don't know if you guys get this problem sometimes at Terminal but I had been having this problem since yesterday :( Maybe I overdid the Terminal. Even the codes that used to work doesn't work anymore. Here is what 's happening: * I wanted to remove lines containing digits so I used this... (25 Replies)
Discussion started by: Nexeu
25 Replies

2. Shell Programming and Scripting

Grep problem

Hello. I'm learning shell scripting right now and I'm trying simple scripts. I have a problem with the one below. The idea is to found the number of files containing asd in their name. Here's the code: #!/bin/sh pattern=asd total=0 for f in * do && continue if grep $pattern $f >... (3 Replies)
Discussion started by: EmZvr
3 Replies

3. Shell Programming and Scripting

grep problem

Hi everyone i am facing a strange problem in grep below is the code RC=0 grep $ERROR_MASK $LOG_FILE 2>&1 > /dev/null && RC=1 || RC=0 what does the above statment do i mean it search for error mask into log file and redirect the error to console null then what's the meaning of RC=1 ||... (2 Replies)
Discussion started by: aishsimplesweet
2 Replies

4. UNIX for Dummies Questions & Answers

problem with grep

Hi I am trying to grep a string in a directory which is having 5000 files. PA>> grep -iH 'linc.unisure_pr13n' * bash: /usr/bin/grep: Arg list too long I am getting the error. i also tried PA>> ls -ltr | grep -iH 'linc.unisure_pr13n' * but still i am getting the error Please Advice... (4 Replies)
Discussion started by: subhotech
4 Replies

5. Shell Programming and Scripting

problem with grep |

Hi, When i try this it is not executing either result or total, pls can any one help me in this. max=month_134.log grep result|total $max > log.txt In month_134.log, it should contain either result or total and then send it to log.txt.It should execute result or total in log.txt ... (3 Replies)
Discussion started by: NehaKrish
3 Replies

6. Homework & Coursework Questions

Grep problem

Changed Problem its a sed actually... Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Use a sed command to create an output file from the input file. The input... (2 Replies)
Discussion started by: skalidindi
2 Replies

7. Shell Programming and Scripting

GREP problem

I have a problem. Suppose I have a log named transport.log >> tp finished with return code: 203 meaning: wrong syntax in tp call .... tp finished with return code: 0 meaning: Everything ok. << What i want to do is to get the return code of the 1st one. So I would probably do:... (2 Replies)
Discussion started by: kdyzsa
2 Replies

8. UNIX for Dummies Questions & Answers

Grep problem

Hi there, this is a very simple question. When I do grep -c "PWD" filename, I get 5. This means the filename contains 5 lines of "PWD" occurence. I tried to assign to a variable. int= grep -c "PWD" filename When I typed echo $int The output: 5 I get an empty line space. Now I... (1 Reply)
Discussion started by: felixwhoals
1 Replies

9. Shell Programming and Scripting

Grep Problem

I have a large file that I am grepping to find a certain string. grep 'C:\Data\Directory\Test.txt' test.txt It can not find it even though I know it is in there . I know that there is a problem with the backslashes but I can't get it to work. I tried grep... (2 Replies)
Discussion started by: lesstjm
2 Replies

10. UNIX for Dummies Questions & Answers

grep problem

Hi I would like to know wheather there is anyway to pass a variable to grep argument like this grep "$myvar" $myfile i would put this in a function and then call this function by setting different values to myvar and myfile. is this possible at all. regards Hrishy (4 Replies)
Discussion started by: xiamin
4 Replies
Login or Register to Ask a Question