目的
- 変数に格納された
\
を/
に置換する方法を知る。 - 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