Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I've searched and searched but I have not found any answer to this question.
How do you create a negation using regular expressions? Lets's assume that I have a list of words and I want to search something (exp1) but skip a result if also exp2 is also anywhere in the string.
So, "anexampleexp1" is catched but "this exp1includingexp2also" is omitted.
It depends a lot on what you're using. Standard negation character is the exclamation point (!).
There is an interesting negation sytnax that can be used in ksh but it doesn't work in bash for example.
However most commonly you'd do this with "grep" which has a special flag -v that says to exclude. So you would do something like:
grep exp1 list |grep -v exp2
The first grep returns all lines that contain exp1. They are then piped into the second grep which eliminates all lines that contain exp2. The final result would be only those lines that contain exp1 but NOT exp2.
PS: Past tense of catch is caught rather than catched. One of those fun English words that makes no sense.
I'm using a content filtering system and all the rules are based on Perl-style regular expressions - one rule per line.
So, I assume that if the first rule is (?!exp2) and I've declared later a rule exp1, the possible string containing exp1 is not filtered if also exp2 is found anywhere in the string that is being processed?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.