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, followed 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 corruption 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)