如何用空格替换“^”?

Kul*_*ngh 5 shell text-processing

在unix下怎么可以^用空格代替

输入:

ab^cd^ef
Run Code Online (Sandbox Code Playgroud)

输出:

ab cd ef
Run Code Online (Sandbox Code Playgroud)

我试过,sub(/^/, " & ", str)但输出与输入相同。

cuo*_*glm 17

这就是工作tr

$ str=ab^cd^ef
$ printf '%s\n' "$str" | tr '^' ' '
ab cd ef
Run Code Online (Sandbox Code Playgroud)

bash, ksh93, mksh, 中zsh

printf '%s\n' "${str//^/ }"
Run Code Online (Sandbox Code Playgroud)

zsh

print -rl -- "${str:gs/^/ /}"
Run Code Online (Sandbox Code Playgroud)


Rah*_*hul 7

使用sed,

$ echo "ab^cd^ef" | sed 's,\^, ,g'
ab cd ef
Run Code Online (Sandbox Code Playgroud)

已经由@jasonwryan 评论,您可以使用内联 shell 字符串替换,

$ str="ab^cd^ef"
$ echo "${str//^/ }"
ab cd ef
Run Code Online (Sandbox Code Playgroud)

另一个,由@someonewithpc建议

$ echo "ab^cd^ef" | sed 'y,^, ,'
ab cd ef
Run Code Online (Sandbox Code Playgroud)

(注:y用于转换字符。)