home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 264b.lha / butils / xargs.doc < prev    next >
Text File  |  1989-07-09  |  4KB  |  101 lines

  1. XARGS 1.3   by Bill Dimm
  2.  
  3. USAGE:
  4.         xargs [options] "expression" [files]
  5.     
  6. DESCRIPTION:
  7.  
  8.     Xargs takes a list of arguments and merges them with the expression
  9. in order to form a string which is executed as an AmigaDOS command (thus,
  10. shell commands cannot appear in expression).  If files
  11. are supplied the list is read from the files (blank lines ignored),
  12. otherwise the list is read from standard input.  Options:
  13.  
  14.     -t    trace mode, expressions are echoed to stderr before execution
  15.  
  16.     -p    prompt mode, auto trace, and prompts on whether or not to 
  17.         execute echo expression
  18.  
  19.     -i    insert mode, each argument is inserted where {} is located in
  20.         the expression (-n & -s settings are ignored when using 
  21.         insert mode)
  22.  
  23.     -e    ignore errors, arguments will continue to be processed even
  24.         if an error occurs
  25.  
  26.     -n num    pass a max of num arguments to each expression (default 9)
  27.     
  28.     -s size    pass of max of size characters per expression (default 255)
  29.  
  30.     
  31.     It is important to note that xargs does not enclose each argument
  32. in quotes, so if you have arguments which contain spaces you should be
  33. careful (enclose them in quotes).  When not in insert mode, arguments are
  34. appended to the end of the expression before it is executed.
  35.  
  36. IMPROVEMENTS:
  37.     
  38.     Since version 0.9, a bug which caused an empty expression to be
  39. executed sometimes has been removed.  Since it is sometimes necessary to
  40. enclose an argument in quotes (because it contains spaces), version 1.0
  41. allows its command line arguments to be enclosed in single quotes (') instead
  42. of double quotes.  If you choose to enclose the expression in single quotes
  43. you may include normal quotes in the expression.  If you are using shell, be
  44. ware that arguments which are enclosed in single quotes instead of double quotes
  45. are not protected from the shell preprocessor, so special characters (such
  46. as " or *) should be preceded by a backslash (\).  Unix fans beware, the
  47. rolls of single and double quotes in shell (using xargs) are the opposite
  48. of what they are in Unix (this cannot easily be overcome).  The -e option was
  49. added.
  50.     Since version 1.0, xargs has been given the ability to execute
  51. multiple commands for each argument.  This can only be done when using
  52. the -i option.  Simply place semi-colons between the commands in the
  53. expression.  Xargs will not consider a semi-colon which is preceded by a
  54. backslash a command separator.  Shell users, don't forget that ; is 
  55. special to the shell (& should be preceded by a \ which is not seen by xargs)
  56. See the last example.
  57.  
  58.         Since version 1.1, xargs has been recompiled with Lattice 5.0.
  59. When in trace mode, it now prints the commands that it is going to 
  60. execute in a different color so that it can be distinguished from the
  61. output of the command.
  62.  
  63.     Since version 1.2, a bug which allowed the '-i' to overflow
  64. the buffer has been removed.  A line which is too long to
  65. construct with '-i' is now reported as an error.  Also, the default
  66. for '-s' has been increased from 250 to 255.
  67.     
  68. EXAMPLES:
  69.  
  70. objective - to print (to prt:) out all of the files ending with .doc on 
  71. a disk (filenames may contain spaces)
  72.  
  73. This example assumes that you have the find command, which allows you to
  74. generate a list of all files on a disk matching a certain pattern.
  75.  
  76. AmigaDOS solution:
  77.   find >ram:tmp -f *.doc -p df0:
  78.   xargs -i 'type "{}" to prt:' ram:tmp
  79.  
  80. Shell solution:
  81.   find -f "*.doc" -p df0: | xargs -i 'type \"{}\" to prt:'
  82.   
  83. Notice the quotes around the {} to keep a filename with spaces from looking
  84. like two different files when xargs passes it to AmigaDOS.
  85.  
  86.  
  87. Here is an example of multiple commands to rename files from DF0: to df1:
  88.   xargs -i "copy DF0:{} df1: ; delete df0:{}" ram:FileList
  89.   
  90.   
  91. Here is a very easy way to grep all '.c' files for the word 'VERSION'
  92.  
  93. AmigaDOS solution:
  94.   find >ram:tmp -f *.c -p DATA:
  95.   xargs "grep VERSION" ram:tmp
  96.   
  97. Shell solution:
  98.   find -f "*.c" -p data: | xargs "grep VERSION"
  99.  
  100. TRAILING NOTE:  The "shell" mentioned above is Matthew Dillon's shell.
  101.