bugfindutils - Bugs: bug #13041, -I (-i) and -L shouldn't be...

 
 

bug #13041: -I (-i) and -L shouldn't be exclusive

Submitted by:  None
Submitted on:  Mon 09 May 2005 11:59:32 PM UTC  
 
Category: xargsSeverity: 3 - Normal
Item Group: Wrong resultStatus: Wont Fix
Privacy: PublicAssigned to: James Youngman <jay>
Originator Name: Alejandro Forero CuervoOriginator Email: -unavailable-
Open/Closed: ClosedRelease: 4.1.20
Fixed Release: None

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sat 03 Sep 2005 10:28:19 AM UTC, comment #5:

As things turn out, findutils is behaving in the same way as many other implementations, and BSD's behaviour, though sensible, is unusual. Therefore I don't plan to change the software but rather to apply your patch updating the documentation.

James Youngman <jay>
Project AdministratorIn charge of this item.
Fri 15 Jul 2005 10:16:45 PM UTC, comment #4:

There is also a recent POSIX interp which is relevant.

James Youngman <jay>
Project AdministratorIn charge of this item.
Sun 19 Jun 2005 11:05:35 AM UTC, comment #3:

On *BSD,

yes x | head -10 | xargs -I Z -L 10 echo foo Z bar

produces:

foo x x x x x bar
foo x x x x x bar

However, GNU findutils currently assumes that {} (or in this case Z) expands to just one argument.

Fixing this is probably going to mean a significant code change and I'm trying to concentrate on producing a stable release. I will make the release and then work on this bug.

James Youngman <jay>
Project AdministratorIn charge of this item.
Sun 19 Jun 2005 08:07:46 AM UTC, comment #2:

This is also reported as <http://bugs.debian.org/231480>.

FWIW I do think that this is not only a mising feature but a real bug. "xargs -i -L10" silently acts as "xargs -L10". I'd rather have it bail out with "conflicting options instead". A command-line using -i will not work at all if -i is ignored, as the arguments are given in the wrong order and additionally a literal {} is passed along as argument, too.

(I'd prefer having -i and -L as non-conflicting options, though.)

Andreas Metzler <ametzler>
Tue 10 May 2005 12:03:12 AM UTC, comment #1:

BTW, I am aware that in this case I can just omit the ‘-i’ and the replace string ‘{}’. However, in the general case, I want to run “scp {} user@host:dir”, without having one separate process for each file (which requires separate authentication for each file).

Anonymous
Mon 09 May 2005 11:59:32 PM UTC, original submission:

I can't xargs to work as I would expect it when I give it both the ‘-i’ and ‘-l’ args. Using ‘-i’ specifies ‘-l1’ (as the documentation indicates) and using ‘-l’ seems to disable the functionality provided by ‘-i’.

This can be evidenced by using the following program:

main ( int argc, char **argv ) { int i; for (i = 0; i < argc; i ++) { printf("Arg %d: [%s]\n", i, argv[i]); } }

When I build it and run it from xargs, I get the following:

> echo -e 'a\nb\nc' | xargs -l10 -i ./test {}

Arg 0: [./test]
Arg 1: [a]
Arg 0: [./test]
Arg 1: [b]
Arg 0: [./test]
Arg 1: [c]

> echo -e 'a\nb\nc' | xargs -i -l10 ./test {}

Arg 0: [./test]
Arg 1: [{}]
Arg 2: [a]
Arg 3: [b]
Arg 4: [c]

>


I was expecting to be able to combine ‘-i’ and ‘-l’ to get:

Arg 0: [./test]
Arg 1: [a]
Arg 2: [b]
Arg 3: [c]

I don't see anything in the semantics of ‘-i’ and ‘-l’ that makes them exclude each other. Of course, in ‘-i’, the replace string (‘{}’) would get replaced with as many tokens from the input as permitted.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follow 5 latest changes.

Date Changed By Updated Field Previous Value => Replaced By
Sat 08 Oct 2005 06:33:29 AM UTCjayOpen/ClosedOpen=>Closed
Sat 03 Sep 2005 10:28:19 AM UTCjayStatusNone=>Wont Fix
Sun 19 Jun 2005 11:05:35 AM UTCjayAssigned toNone=>jay
  Summary-i and - shouldn't be exclusive=>-I (-i) and -L shouldn't be exclusive
Mon 09 May 2005 11:59:32 PM UTCNoneCarbon-Copy-=>Added bachue --AT-- bachue --DOT-- com

Back to the top


Powered by Savane 3.1-cleanup1