replace function
Does an insitu replacement on the file located at path.
replace searches the file at path for any occurances
of existing and replaces them with replacement.
By default we only replace the first occurance of existing on each line.
To replace every (non-overlapping) occurance of existing on a
line then set all to true;
The replace method returns the no. of lines modified.
During the process a tempory file called path.tmp is created
in the directory of path.
The modified file is written to path.tmp.
Once the replacement completes successfully the file at path
is renamed to path.bak, path.tmp is renamed to path and then
path.bak is deleted.
The above process essentially makes replace atomic so it should
be impossible to loose your file. If replace does crash you may
have to delete path.tmp or path.bak but this is highly unlikely.
Implementation
int replace(
String path,
Pattern existing,
String replacement, {
bool all = false,
}) =>
_Replace().replace(path, existing, replacement, all: all);