public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: Steven Lembark <lembark@wrkhors.com>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] Grep question
Date: Mon, 02 Mar 2009 05:01:24 -0500	[thread overview]
Message-ID: <49ABAE74.3000902@wrkhors.com> (raw)
In-Reply-To: <5602B0BD6D59AE4791BE83104940118D7B1B328A@excprdmbxw002.optus.com.au>

Adam Carter wrote:
> I need to select all the lines between string1 and string2 in a file.
> String1 exists on an entire line by itself and string2 will be at the
> start of a line. What's the syntax? I cant use -A as there is a variable
> number of lines.

Perl will handle this easily enough for you.

Assuming you want to print string1 and string2:

    perl -n -e 'print if /string1/ ../string2/';

The '..' notation behaves sort of like a triac
(flip-flop?): it is false until the first test
is true and true until the second passes, at
which point it stays false again.

for example:

$ cat a
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
foo     <-- /foo/ true here
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
bar     <-- /bar/ true here
fdsa
fdsa
fdsa

$ perl -n -e 'print if /foo/ .. /bar/';
foo
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
asdf
bar


-- 
Steven Lembark                                            85-09 90th St.
Workhorse Computing                                 Woodhaven, NY, 11421
lembark@wrkhors.com                                      +1 888 359 3508



  parent reply	other threads:[~2009-03-02 10:01 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-02  2:01 [gentoo-user] Grep question Adam Carter
2009-03-02  2:04 ` Mike Kazantsev
2009-03-02 10:01 ` Steven Lembark [this message]
2009-03-02 14:06 ` [gentoo-user] " James
2009-03-03  2:10   ` Harry Putnam
2009-03-03  9:52     ` Etaoin Shrdlu
2009-03-05 16:54       ` Harry Putnam
2009-03-05 23:01         ` Adam Carter
2009-03-06  9:33           ` Etaoin Shrdlu

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

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

  git send-email \
    --in-reply-to=49ABAE74.3000902@wrkhors.com \
    --to=lembark@wrkhors.com \
    --cc=gentoo-user@lists.gentoo.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