If `$X` is the parameter where the new version is stored, ed file << EOF g/^version =/s/.*/version = '$X'/ g/^release =/s/.*/release = '$X'/ w q EOF This assumes `$X` has a reasonable value, like `1.2.3-foo`, and no characters that are special to the `ed` command interpreter.