我有下面的绳子 hello/world 我想替换 / - 得到 hello-world
hello/world
/
-
hello-world
http://rextester.com/NMIOL63413
$ echo hello/world | tr -c '[:alnum:]' '-' $ hello-world-
为什么有额外的 -
很明显 echo 打印一个 \n -c ,您正在寻找替换以下字符 不 [:alnum:] . 由于新行也不是有效的字母数字字符的一部分,因此它也会被替换。
echo
\n
-c
[:alnum:]
在这种情况下,如果你不确定哪个“魔法”角色出现或被替换,那么做一个 hexdump 从弦里看。你可以看到 \n个 最后。
hexdump
\n个
echo hello/world | hexdump -c 0000000 h e l l o / w o r l d \n 000000c
printf :
printf
printf '%s' 'hello/world' | tr -c '[:alnum:]' '-'