> -----Original Message----- > From: centos-bounces at centos.org > [mailto:centos-bounces at centos.org] On Behalf Of neubyr > Sent: 17/05/2011 06:36 > To: CentOS mailing list > Subject: [CentOS] 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