Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@yashihei
Last active April 20, 2019 16:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yashihei/d4bcbf02b2f55e048fbfd5a93f81e225 to your computer and use it in GitHub Desktop.
Save yashihei/d4bcbf02b2f55e048fbfd5a93f81e225 to your computer and use it in GitHub Desktop.
bashで、スラッシュ -> バックスラッシュに置換したい時

sedコマンドを使います。

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

sedコマンドを使った置換の例。(abc -> ABC)

$ sed -e 's/abc/ABC/g'

スラッシュからバックスラッシュへの置換は一見奇妙に見えます(実際奇妙です)。

$ sed -e "s/\//\\\\/g"

バックスラッシュが4本も並んでいる理由として、一旦文字列として\\\\\\に展開されて次にsedコマンドによって\\(エスケープ付きのバックスラッシュ)されるからです。

$ echo "\\\\"
> \\
$ echo /hoge/fuga/piyo/ | sed -e "s/\//\\\\/g"
> \hoge\fuga\piyo\
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment