I need to search a file for text “InstallDir=” + newline character and
replace it with something like: InstallDir=C:\mws71 + newline
My own experimentation with this had problems with writing the back-
slashes to the file (it’s a requirement of the format to have the back-
slashes as in my example). The string had the back-slashes in it but
they didn’t get persisted to the file correctly.
Are there any libraries that perform a search and replace?
thanks
phil
Phil S. wrote:
I need to search a file for text “InstallDir=” + newline character and
replace it with something like: InstallDir=C:\mws71 + newline
“InstallDir=\n”.gsub /(InstallDir=)(\n)/, ‘\1C:\mws71\2’
=> “InstallDir=C\:\mws71\n”
My own experimentation with this had problems with writing the back-
slashes to the file (it’s a requirement of the format to have the back-
slashes as in my example). The string had the back-slashes in it but
they didn’t get persisted to the file correctly.
In a single-quoted string, one backslash outputs one backslash.
In a double-quoted string, two backslashes outputs one backslash.
'\ ’
=> "\ "
"\ "
=> "\ "
Are there any libraries that perform a search and replace?
String#gsub
On Fri, May 04, 2007 at 03:16:37AM +0900, Suraj K. wrote:
they didn’t get persisted to the file correctly.
In a single-quoted string, one backslash outputs one backslash.
Except where followed by a single quote or another backslash.
irb(main):001:0> ‘\’.length
=> 1
irb(main):002:0> ‘’’.length
=> 1
irb(main):003:0> ‘\n’.length
=> 2
Are there any libraries that perform a search and replace?
String#gsub
I meant on a file… I was looking for something like
File.search_and_replace(file_name, regex_search, replace_string)
But I guess I can simply pull a file into a string and then do a gsub
and write the file out.
Thanks,
phil