Re: xargs with max each line / argument

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



> -----Original Message-----
> From: centos-bounces@xxxxxxxxxx 
> [mailto:centos-bounces@xxxxxxxxxx] On Behalf Of neubyr
> Sent: 17/05/2011 06:36
> To: CentOS mailing list
> Subject:  xargs with max each line / argument
> 
> How do I pass xargs input one line at a time to subsequent command?
> For example I want to install rubygems by reading a text file as shown
> below, however the arguments are getting passed all at once to the
> 'gem install' command. I hace tried -L (max-lines) and -n (max args)
> options, but it didn't work. What's missing here?? Any help?
> 
> $ cat gem.list.1
> mkrf
> rake
> xmlparser
> 
> $ awk '{ print $0 }' gem.list.1 | xargs -L 1 -0 -I name sudo 
> gem install name
> ERROR:  could not find gem mkrf
> rake
> xmlparser
>  locally or in a repository
> 
> 
> thanks,
> neuby.r

Hi.

As others have mentioned, a simple cat or use of < into xargs will simplify things.  The max-args switch _is_ the one you are
looking for:

--max-args=max-args, -n max-args

Spceifically:

cat gem.list.1 | xargs --max-args=1 sudo gem install

will do what you want, I think - please test it first.  You could add --interactive to xargs to help with this, or even just:

cat gem.list.1 | xargs --max-args=1 echo sudo gem install

which will just dump the commands that would be run (using echo).

hth   Andy

_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos


[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux