Egrep Help


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Egrep Help
# 1  
Old 11-10-2004
Egrep Help

I'm writing a small script thats purpose is to validate a single command line argument to make sure it is an integer. Also acceptable are a leading "+" or "-", but no more than one.

Example: "5" "-2" "+4" are all valid

If its invalid I simply print out a message saying so, otherwise I just return the value (I need to remove the leading "+" though).

Here's the code I have so far:

Code:
# Checks for valid number of arguments
# Exits program with return code of 1
if [ $# -ne 1 ]; then
        echo "Invalid number of arguments; supports only one argument"

        exit 1
fi

# Checks for valid argument
echo $1 | egrep -s "^[+|-]?[0-9]+$"

# If argument is valid then return its value
# Exits program with return code of 0
if [ $? -eq 0 ]; then
        # Removes a leading '+' sign if there is one
        tr -d '+' $1
        echo $1

        exit 0
# If argument is invalid then return an error message
# Exits program with return code of 2
else
        echo "Invalid operand: $1"

        exit 2
fi

My problem is that when a valid argument is entered the cursor just moves to the next line and sits there. I'm guessing something must be wrong with my eGrep statement. I'm looking for a + or - 0 or 1 time...followed by one or more numbers...what am I doing wrong?

EDIT: It may be with my translate command sine I've never used it before. I need to delete all +'s in the (valid) argument....how do I do that?

Last edited by FuzzyNips; 11-10-2004 at 03:50 PM..
# 2  
Old 11-10-2004
I tried some thing like this , which might help you ;



$ echo "-1" | egrep "^[\+\-]" | tr "-" " "
1
$
$ echo "+1" | egrep "^[\+\-]" | tr "+" " "
1
# 3  
Old 11-10-2004
Ok I got it working finally!

Code:
# Checks for valid argument
echo $1 | egrep -s "(^[\+]?[0-9]+$)|(^[-]?[0-9]+$)"

# If argument is valid then return its value
# Exits program with return code of 0
if [ $? -eq 0 ]; then
        # Removes a leading '+' sign if there is one
        echo $1 | tr -d "+" " "

        exit 0

# If argument is invalid then return an error message
# Exits program with return code of 1
else
        echo "Invalid operand: $1"

        exit 1
fi


Last edited by FuzzyNips; 11-10-2004 at 05:17 PM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Egrep

Hi I am trying to run CMD that combining EGREP and PERL in multiple files cat *07:00.22-12-13.txt | egrep" NAME| perl -ne 'print if /^sid9/ .. /^!/' " I need the see the NAME and the text from sid9 to ! how can I use the EGERP in parallel to the PERL ? This is one file Qqq... (2 Replies)
Discussion started by: sharong
2 Replies

2. Shell Programming and Scripting

Help with egrep

Hi, I need to search for a exact word in a file and I have a list of allowable values in a list file. I search something like this using egrep -f option: >egrep -f list.txt data.txt New New York NewYork > list.txt file has the allowable value for search and this file can be edited to... (5 Replies)
Discussion started by: calredd
5 Replies

3. Shell Programming and Scripting

egrep

i am new to bash or scripting period and had a question about how I could use the egrep command (or if there should be another command to use) to accomplish the following goal. Need to look through the ndm files labeled as S20090709.999 and if I cannot find a specific date then search the archived... (5 Replies)
Discussion started by: freddie999
5 Replies

4. UNIX for Dummies Questions & Answers

help on egrep

HI, I have two files filea, fileeb filea z283110z67 xx65686377 xx654681zz xx652836xx xx653881zz xx65480z11 xx654z5466 xx65510000 xx65670000 xx656z0000 xx656z1822 fileb (3 Replies)
Discussion started by: krao
3 Replies

5. UNIX for Dummies Questions & Answers

search ")" with egrep - egrep: syntax error

Hi Guys, we have a shell script which basically query the Database which retrieves huge data and use the data with "egrep" . Now there is some data which contains characters like "abc)" and the same is used like below : "egrep (.+\|GDPRAB16\|GDPR/11702 96 abc)\|$ temp.txt" now while... (7 Replies)
Discussion started by: sagarjani
7 Replies

6. UNIX for Dummies Questions & Answers

Egrep

what does "egrep """ do ?? Can anyone explain this with an example .. please .. (2 Replies)
Discussion started by: risshanth
2 Replies

7. Shell Programming and Scripting

help on egrep

Hi there, How many multiple values can be in egrep for seraching? i am giving more values but i am getting the error like Unknown error. My input in extended to 2nd line. my command is like below. egrep -i -h... (2 Replies)
Discussion started by: arund_01
2 Replies

8. Shell Programming and Scripting

egrep help

Hi there, Im having some issues using egrep, I have a text file containing server logs: the user imputs 2 arguments, which are error checked and made into $searchMonth $searchYear respectivley. I then do the grep command: egrep /$searchMonth/ $file | egrep /$searchYear: | wc -l ... (1 Reply)
Discussion started by: Darklight
1 Replies

9. Shell Programming and Scripting

egrep

Hi, I don't understand what is the correct way of writing: egrep -l '{$min,$max} $pattern' $filename I tryed to search on google how to wtrite {$min, $max}, but I don't have success (7 Replies)
Discussion started by: DNAx86
7 Replies

10. UNIX for Dummies Questions & Answers

Egrep cheat sheet anywhere? Looking for meaning of egrep -c

Hi I've been searching google and have not found what egrep -c means. Does anyone know where I can get a cheat sheet or what that -c means? thanks, Linda (2 Replies)
Discussion started by: leelm
2 Replies
Login or Register to Ask a Question