sponge - soak up standard input and write to a file
sed '...' file | grep '...' | sponge [-a] file
reads standard input and writes it out to the specified file.
Unlike a shell redirect, sponge
soaks up all its input before writing
the output file. This allows constructing pipelines that read from and write
to the same file.
preserves the permissions of the output file if it already exists.
When possible, sponge
creates or updates the output file atomically by
renaming a temp file into place. (This cannot be done if TMPDIR is not in the
If the output file is a special file or symlink, the data will be written to it,
If no file is specified, sponge
outputs to stdout.
- Replace the file with a new file that contains the file's original
content, with the standard input appended to it. This is done atomically
Colin Watson and Tollef Fog Heen