【发布时间】:2022-11-04 00:54:50
【问题描述】:
假设我有如下字符串:
$ a='/o\\'
$ echo $a
/o\
$ b='\//\\\\/'
$ echo $b
\//\\/
我想要一个 shell 脚本(最好是单行脚本)来用 \ 替换出现的 /,反之亦然。
假设命令名为invert,它将产生(在 shell 提示符下):
$ invert $a
\o/
$ invert $b
/\\//\
例如使用sed,似乎无法避免使用临时字符,这不是很好,像这样:
$ echo $a | sed 's#/#%#g' | sed 's#\\#/#g' | sed 's#%#\\#g'
\o/
$ echo $b | sed 's#/#%#g' | sed 's#\\#/#g' | sed 's#%#\\#g'
/\\//\
在某些情况下,这对于正确打印git log --graph --all | tac 很有用(我喜欢在底部看到较新的提交)。
【问题讨论】: