[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

a lot of directories each with a .zip

Simon Schuster

9/29/2007 5:53:00 AM

I could go about this a bunch of different ways. my lame bash skills
came up with:

ls -R | grep "zip" | unzip -d /targetdir , which didn't work (I get
confused with the pipes and the input and the whatnot.)

but that's okay, I'd rather just do it all inside ruby. so, I got the
rubyzip gem, but am not finding any examples on how to use it (and I'm
still confused about how to read the documentation) but rubyzip + rio
seems like how I'll go about it, since I'm using rio in other areas
already.

any help on either doing it all in ruby, or the simple bash command
I'm failing to execute, would be helpful :) thank you much!

3 Answers

Cam

9/29/2007 7:02:00 AM

0

Hi,

On 9/28/07, Simon Schuster <significants@gmail.com> wrote:
> I could go about this a bunch of different ways. my lame bash skills
> came up with:
>
> ls -R | grep "zip" | unzip -d /targetdir , which didn't work (I get
> confused with the pipes and the input and the whatnot.)
>
> but that's okay, I'd rather just do it all inside ruby. so, I got the
> rubyzip gem, but am not finding any examples on how to use it (and I'm
> still confused about how to read the documentation) but rubyzip + rio
> seems like how I'll go about it, since I'm using rio in other areas
> already.
>
> any help on either doing it all in ruby, or the simple bash command
> I'm failing to execute, would be helpful :) thank you much!

I don't know anything about the ruby module, but I think this bash
command should work:

find . -name "*.zip" -type f -exec unzip -d /targetdir {} \;

Cameron

7stud 7stud

9/29/2007 8:18:00 AM

0

Simon Schuster wrote:
> I could go about this a bunch of different ways. my lame bash skills
> came up with:
>
> ls -R | grep "zip" | unzip -d /targetdir , which didn't work (I get
> confused with the pipes and the input and the whatnot.)
>
> any help on either doing it all in ruby, or the simple bash command
> I'm failing to execute, would be helpful :) thank you much!

ls -R | grep zip (you don't need quotes)

produces something like this:

aaa.zip
bbb.zip
cccc.zip

but there are no path names associated with those file names. I imagine
unzip needs to know the full path to the file in order to unzip
it--unless the file happens to be in the current directory.



--
Posted via http://www.ruby-....

Jesús Gabriel y Galán

9/29/2007 8:42:00 AM

0

On 9/29/07, Cameron Matheson <cameron.matheson@gmail.com> wrote:
> On 9/28/07, Simon Schuster <significants@gmail.com> wrote:
> > I could go about this a bunch of different ways. my lame bash skills
> > came up with:
> >
> > ls -R | grep "zip" | unzip -d /targetdir , which didn't work (I get
> > confused with the pipes and the input and the whatnot.)

> but I think this bash
> command should work:
>
> find . -name "*.zip" -type f -exec unzip -d /targetdir {} \;

I think the above is the best. Other way if you really want to use
grep and send the output to another command like unzip would be:

find . | grep "\.zip" | xargs unzip

Jesus.