Help: Regular Expression for Negate Matching String


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help: Regular Expression for Negate Matching String
# 1  
Old 06-22-2009
Help: Regular Expression for Negate Matching String

Hi guys,

as per subject I am having problem with regular expressions.

Example, if i got a string "javax.servlet.http.HttpServlet.service" that may occurred anywhere within a text file.

How can I used the negate pattern matching of regular expression?

I tried the below pattern but it throws a syntax error.
# egrep '^*(?!javax.servlet.http.HttpServlet.service)*$' test.txt

Appreciate if anyone can help.

Thanks in advance.
# 2  
Old 06-22-2009
Code:
fgrep -v 'javax.servlet.http.HttpServlet.service' myFile
OR
sed '/javax.servlet.http.HttpServlet.service/d' myFile
OR
nawk '!/javax.servlet.http.HttpServlet.service/' myFile

# 3  
Old 06-22-2009
Do you mean
1. find out if it ever occurs in the file
Code:
grep -q 'javax\.servlet.http\.HttpServlet\.service' somefile.txt
if [[ $? -ne 0 ]] ; then
 echo "file is okay - no string found"
fi

2. print lines that do not have the pattern
Code:
grep -v 'javax\.servlet.http\.HttpServlet\.service' somefile.txt

Otherwise please explain what you want, not how you wanted to do it. A negated character class (which what you wrote is not an example of) means 'match anything else except this'. grep -v [pattern] has this meaning.
# 4  
Old 06-22-2009
Hi guys,

thanks for the examples.

I am actually looking for a regular expression to search for a string in a text file; if throughout the file no such string it finds occur, it will throw out an error.

Maybe i am looking at the wrong direction but bottom line is i need this to be regular expression and I may not be using the standard unix command to do this. Smilie
# 5  
Old 06-22-2009
Conversely, regular expressions by themselves do one thing: find strings using pattern matching.

Again - what are you trying to do? If I remember correctly, ! negates a perl regex.
But what negation means: it still finds everything else. It returns the whole string only if the pattern match fails. Is that what you want?

In truth your question does not make a lot of sense to me.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

String regular expression

Hi, temp="/usr=25,/usr/lib=12" How to get only dir names with out values. I tried like below but no use. tmp=${temp##*,} echo $tmp o/p: /usr/lib=12 expected o/p: /usr /usr/lib ---> in array (13 Replies)
Discussion started by: munna_dude
13 Replies

2. Shell Programming and Scripting

regular expression matching whole words

Hi Consider the file this is a good line when running grep '\b(good|great|excellent)\b' file5 I expect it to match the line but it doesn't... what am i doing wrong?? (ultimately this regex will be in a awk script- just using grep to test it) Thanks, Storms (5 Replies)
Discussion started by: Storms
5 Replies

3. UNIX for Dummies Questions & Answers

delete lines matching a regular expression

I have a very large file (over 700 million lines) that has some lines that I need to delete. An example of 5 lines of the file: HS4_80:8:2303:19153:193032 153 k80:138891 HS4_80:8:2105:5544:43174 89 k88:81949 165 k88:81949 323 0 * = 323 0 ... (6 Replies)
Discussion started by: pathunkathunk
6 Replies

4. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

Hi all, How am I read a file, find the match regular expression and overwrite to the same files. open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat"; open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat"; while (<DESTINATION_FILE>) { # print... (1 Reply)
Discussion started by: jessy83
1 Replies

5. Shell Programming and Scripting

Matching single quote in a regular expression

I trying to match the begining of the following line in a perl script with a regular expression. $ENV{'ORACLE_HOME'} I tried this regluar expession: /\$ENV\{\'ORACLE_HOME\'\}/ Instead of match, I got a blank prompt > It seems to be a problem with the single quote. If I take it... (11 Replies)
Discussion started by: JC9672
11 Replies

6. Shell Programming and Scripting

Regular expression matching

Hi, I have a variable in my script that gets its value from a procstack output. It could be a number of any length, or it could just be a '1' with 0 or more white spaces around it. I would like to detect when this variable is just a 1 and not a 1234, for example. This is as far as I got: ... (3 Replies)
Discussion started by: tmf33uk
3 Replies

7. Shell Programming and Scripting

Regular expression matching in BASH (equivalent of =~ in Perl)

In Perl I can write a condition that evaluates a match expression like this: if ($foo =~ /^bar/) { do blah blah blah } How do I write this in shell? What I need to know is what operator do I use? The '=~' doesn't seem to fit. I've tried different operators, I browsed the man page for... (3 Replies)
Discussion started by: indiana_tas
3 Replies

8. Programming

Regular Expression matching in PERL

I am trying to read a file and capture particular lines into different strings: LENGTH: Some Content here TEXT: Some Content Here COMMENT: Some Content Here I want to be able to get (LENGTH: .... ) into one array and so on... I'm trying to use PERL in slurp mode but for some reason... (8 Replies)
Discussion started by: Legend986
8 Replies

9. Shell Programming and Scripting

validate a string against a regular expression

Hi there i have a script which will create unix user accounts. Id like to validate the entered string so that it is specifically 8 characters or less and consists of only ! not Is there a way to validate a string against a regular expression.. i.e size=`printf "$var | wc -m` ... (1 Reply)
Discussion started by: hcclnoodles
1 Replies

10. Shell Programming and Scripting

Regular expression matching a new line

I have written a script to test some isdn links in my network and I am trying to format the output to be more readable. Each line of the output has a different number of digits as follows... Sitename , spid1 12345678901234 1234567890 1234567 , spid2 1234567890 1234567890 1234567 Sitename , ... (1 Reply)
Discussion started by: drheams
1 Replies
Login or Register to Ask a Question