Use sed to replace all backslashes with forward slashes
I want to be able to use sed to take an input such as:
C:\Windows\Folder\File.txt
to
C:/Windows/Folder/File.txt
sed
can perform text transformations on input stream from a file or from a pipeline. Example:
echo 'C:\foo\bar.xml' | sed 's/\\/\//g'
gets
C:/foo/bar.xml
for just translating one char into another throughout a string, tr
is the best tool:
tr '\\' '/'
Just use:
sed 's.\\./.g'
There's no reason to use /
as the separator in sed
. But if you really wanted to:
sed 's/\\/\//g'
If your text is in a Bash variable, then Parameter Substitution ${var//\\//}
can replace substrings:
$ p='C:\foo\bar.xml'
$ printf '%s\n' "$p"
C:\foo\bar.xml
$ printf '%s\n' "${p//\\//}"
C:/foo/bar.xml
This may be leaner and clearer that filtering through a command such as tr
or sed
.