function escape_shell(str) { gsub(/\\/, "\\\\", str) gsub(/'/, "\\\'", str) gsub(/"/, "\\\"", str) gsub(/\$/, "\\$", str) return str } { printf "printf '%%s\\n' \"%s\"\n", escape_shell($0) }