)
}
-# Usage: sed_i ... <file>
+# Usage: cmd_i <cmd> ... <file>
#
-# Uses <file>.tmp as temporary file. sed -i is not compatible due to different
-# implementations.
-sed_i() {
+# Run <cmd> with all arguments (including the last file) and write the result
+# to the temporary file <file>.tmp and then renamed that file to <file>. This
+# can't be done in-place (e.g. cmd <file >file) because it truncates the file.
+cmd_i() {
# Get last argument.
last=
for x; do
last="$x"
done
- sed "$@" >"$last".tmp
+ "$@" >"$last".tmp
mv "$last".tmp "$last"
}
+# Usage: sed_i ... <file>
+#
+# sed -i is not compatible due to different implementations. See cmd_i.
+sed_i() {
+ cmd_i sed "$@"
+}
+
# Print the current OS. The following OS are supported at the moment:
# - Debian (debian)
# - Gentoo (gentoo)