unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: gnuist006@gmail.com, help-gnu-emacs@gnu.org
Subject: RE: How to find lines not matching a certain pattern - ie grep -v
Date: Sun, 22 Feb 2015 12:55:31 -0800 (PST)	[thread overview]
Message-ID: <2ee45e5e-3350-488b-8253-663bc7d3d96b@default> (raw)
In-Reply-To: <6a41f4ac-f7e7-49f1-a593-501d82d4c733@googlegroups.com>

> 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.

 http://www.emacswiki.org/emacs/Icicles_-_Search_Commands%2c_Overview#SearchOutsideContexts

 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.

 http://www.emacswiki.org/emacs/Icicles_-_Nutshell_View#ChippingAway

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-~'.

 http://www.emacswiki.org/emacs/IsearchPlus#isearchp-toggle-complementing-domain



  parent reply	other threads:[~2015-02-22 20:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-22 18:11 How to find lines not matching a certain pattern - ie grep -v gnuist006
2015-02-22 20:40 ` Dan Espen
2015-02-22 22:01   ` ltolenaar
2015-02-25  1:29     ` Robert Thorpe
2015-02-22 20:55 ` Drew Adams [this message]
2015-02-23  3:23 ` Barry Margolin
2015-02-23  4:20   ` Michael Heerdegen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2ee45e5e-3350-488b-8253-663bc7d3d96b@default \
    --to=drew.adams@oracle.com \
    --cc=gnuist006@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).