目的
- 変数に格納された
\を/に置換する方法を知る。 - Windows表示のファイルパスをLinuxのものに書き換える方法を知る。
書き方の例
- 変数に格納された文字列の置換を用いて
\を/に変換する。 - 変数には
\を含む任意の文字列が格納されているものとする。 - 変数内の文字置換は${変数名//置換対象文字/置換後文字}で処理することができる。
- 下記にShellScriptの処理を記載する。
# 出力 ${変数名//置換前文字/置換後文字}
$ echo ${変数名//\\//}
- 上記の書き方だと若干分かりにくいので解説をする。
- 変数名の次の
//はマッチしたものをすべて置換する命令 -
//の後の\\は最初の\がエスケープ命令で、後ろの\が置換前文字 -
\\の後の/は置換前文字と置換後文字を区切るもの - 最後の
/は置換後文字 - 前述の内容を踏まえ、今回の処理をわかりやすくスペースを入れて記載する。
$ echo ${変数名 // \\ / /}
より具体的な例
- Windows表記のファイルパス(ディレクトリの区切りが
\)を、Linux表記のファイルパス(ディレクトリの区切りが/)に置換する。 - 変数
file_pathにはWindows表記のファイルパス「C:\Users\miriwo\Documents\sample」を格納する。 - 下記にShellScriptの処理を記載する。
# 変数にファイルパスを格納
$ file_path="C:\Users\miriwo\Documents\sample"
# \を/に置換して変数file_pathに格納
echo ${file_path//\\//}
>C:/Users/miriwo/Documents/sample