Friday, September 14, 2012

Re: vim: how to search a pattern through all files in a compressed file (e.g. a tar.gz ball)?

On Fri, Sep 14, 2012 at 12:46:08PM -0500, Tim Chase wrote:
> On 09/14/12 12:10, Ben Fritz wrote:
> > On Friday, September 14, 2012 12:06:41 PM UTC-5, sc wrote:
> >> On Fri, Sep 14, 2012 at 12:14:41PM -0400, ping wrote:
> >>> assume I have a tar ball containing muliple files and I don't want
> >>> to uncompress everything in a folder to start my search (since vim
> >>> can open compressed/tar.ed files on the fly), is there way to search
> >>> a keyword through all the files in the tarball?
> >>
> >> do you have zgrep available? if so you can
> >> zgrep 'pattern' tar-gz-file | vim -
> >
> > I didn't know about zgrep! But how about setting 'grepprg' to use
> > it rather than grep? Then you can navigate results easier.

> Does it work for you with gzipped tar files? I know you can use
> zgrep for plain (non-tar'ed) gzipped files, but when I try it on a
> gzipped tar file, it only tells me that a binary file matches:

> ~$ cd tmp
> ~/tmp$ mkdir d
> ~/tmp$ cd d
> ~/tmp/d$ echo alpha > a.txt
> ~/tmp/d$ echo beta > b.txt
> ~/tmp/d$ echo delta > d.txt
> ~/tmp/d$ cd ..
> ~/tmp$ tar cvfz d.tgz d/
> d/
> d/a.txt
> d/d.txt
> d/b.txt
> ~/tmp$ zgrep alpha d.tgz
> Binary file (standard input) matches

to be honest I don't know -- I learned about zgrep quite recently and
have never had occasion to use it -- I only briefly scanned the man
page before posting -- forgive me, I assumed it would handle tarfiles
too

maybe you'd need something like

tar -xz tar-gz-file | grep 'pattern'

sc

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: