4mINSITU24m(1)			  General Commands Manual		    4mINSITU24m(1)

1mNAME0m
     insitu - modify files in place with shell commands

1mSYNOPSIS0m
     insitu [1m-t22m] file command

1mDESCRIPTION0m
     A shell pipeline cannot both read and write to the same file; for example

       cat foo | grep bar > foo

     will merely delete the contents of foo.

     Insitu  wraps  a  shell command, connecting its standard input and standard
     output to the file.  If 4mcommand24m finishes successfully,  the  file  will  be
     truncated	(or extended) to the size of the output produced by the command.
     If 4mcommand24m returns a non-zero exit status, the file will not	be  truncated
     (unless  -t  is passed), but contain the output read from the command, fol‐
     lowed by the rest of the original file.  The part of the  file  overwritten
     by the command output will be lost.

     Insitu  runs the command with '$SHELL -c 4mcommand24m', substituting /bin/sh for
     $SHELL if the latter is not set.

   1mOptions0m
     1m-t     22mtruncate 4mfile24m even if 4mcommand24m returns a non-zero exit status.

1mEXIT STATUS0m
     insitu returns the exit status of 4mcommand24m.  Additionally, 1m128  22mis  returned
     if invalid flags are passed, 1m129 22mif 4mfile24m cannot be accessed, and 1m130 22mif the
     child process for running 4mcommand24m cannot be started.

1mBUGS0m
     Insitu  is	 a dangerous and brittle tool that can easily cause data corrup‐
     tion if the command fails halfway through.	 Make sure you	understand  this
     risk before running it on important files.

1mSEE ALSO0m
     1mcp22m(1),1mmv22m(1),1msh22m(1)

				   insitu-1.0			       4mINSITU24m(1)