[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: How to find lines not matching a certain pattern - ie grep -v

From: Drew Adams
Subject: RE: How to find lines not matching a certain pattern - ie grep -v
Date: Sun, 22 Feb 2015 12:55:31 -0800 (PST)

> Once in a while I have to do something to lines that do not have a certain
> string or set of strings in them. I know how to find lines with a string. I
> also know how to find lines with a set of strings, ie by using the regexp
> string1\|string2\| ....
> But I dont know how to find strings that do not have the string or strings.

A. If you use Icicles then:

 1. You can complement the search domain (the set of search contexts).
 In the case of `icicle-occur', which is analogous to `occur' and `grep',
 the search contexts are lines, so searching with complementing means
 searching the lines that do not match the context-defining regexp.

 You can use `C-M-~' anytime during Icicles search, to toggle whether to
 search the originally defined search contexts or their complements.

 2. #1 is about complementing the set of search contexts, that is, the
 regions of text that you define initially and then search incrementally.  
 Another, more common kind of complementing is to complement the set of
 current search hits, on the fly.

 For that, you hit `C-~'.  That is the Icicles way to complement the
 current set of completion candidates, to show those from the initial
 domain (or the last narrowing via `S-SPC') that do not belong to the
 current set of hits.  So you type a pattern to match, and then hit
 `C-~', to see all of the thingies that do NOT match that pattern.

B. If you use library `isearch-prop.el' then you can get another kind
of complementing with Isearch:

 You can search zones of text/overlays that have a given property, or
 you can search the complement: the zones that do NOT have a given
 property.  You can toggle this search-domain complementing at any time
 during Isearch, using `C-M-~'.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]