Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jul 2011 16:28:56 +1000
From:      "Murray Taylor" <MTaylor@bytecraft.com.au>
To:        <perryh@pluto.rain.com>, <kline@thought.org>
Cc:        freebsd-questions@freebsd.org
Subject:   RE: scrpt help neded...
Message-ID:  <E194A4DE220BBE4FAF3AB7C4E7EDA0860188BF31@svmailmel.bytecraft.internal>
In-Reply-To: <4e281697.2F3Hm7eEgDK4U/K6%perryh@pluto.rain.com>

next in thread | previous in thread | raw e-mail | index | archive | help
-----Original Message-----
From: owner-freebsd-questions@freebsd.org
[mailto:owner-freebsd-questions@freebsd.org] On Behalf Of
perryh@pluto.rain.com
Sent: Thursday, 21 July 2011 10:08 PM
To: kline@thought.org
Cc: freebsd-questions@freebsd.org
Subject: Re: scrpt help neded...

Gary Kline <kline@thought.org> wrote:

> I'm looking for a script that takes on arg and lets   me vi/vim
> into the r esults.  Let's say that I'm looking for the string
> 201107 in a slew of files.  the script find it with grep---not
> grep -w, just grep.  collect es the filenames and lines (grep -n)
> and saves  then temporarily, then points vim or vi at each
> file+linenumbr and execs it for me.   the fewer keystrokes, the
> better.

To edit each file that contains 201107:

=20 $ vi ` grep -l 201107 {files to be searched} `

That won't pre-position within the files, but since it's a single
invocation of vi, with each subsequent file being loaded by :n, a
search pattern will persist (unless/until you replace it by entering
a different search pattern).  At the top of the first file, you enter

=20 /201107

to find the first instance, "n" to find the second, etc.  After :n
-- at the top of the second file -- "n" alone will find the first
instance.

OTOH if you want to bring up an xterm containing _the results of
the grep_ you can pipe it into the attached script.  There is no
manpage, but the comments and the (straightforward) parameter
decoding should provide a start.  (There are a few "magic numbers",
which ideally should be tweaked for your X11 installation's font
dimensions, but nothing horrible will happen if they are slightly
off.)

-----

get your grep script to return the line number of the item to be changed
and=20
then use vi -c<linenumber> filename .... this is preposition you on the
line
containing the grepped target.
=20


--=20
Murray Taylor
Bytecraft Systems
Special Projects Engineer

=20|_|0|_|        "Absence of evidence
=20|_|_|0|        is not evidence of absence"
=20|0|0|0|        Carl Sagan



=20
---------------------------------------------------------------
The information transmitted in this e-mail is for the exclusive
use of the intended addressee and may contain confidential
and/or privileged material. Any review, re-transmission,
dissemination or other use of it, or the taking of any action
in reliance upon this information by persons and/or entities
other than the intended recipient is prohibited. If you
received this in error, please inform the sender and/or
addressee immediately and delete the material.=20

E-mails may not be secure, may contain computer viruses and
may be corrupted in transmission. Please carefully check this
e-mail (and any attachment) accordingly. No warranties are
given and no liability is accepted for any loss or damage
caused by such matters.
---------------------------------------------------------------

### This e-mail message has been scanned for Viruses by Bytecraft ###



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E194A4DE220BBE4FAF3AB7C4E7EDA0860188BF31>