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)
使用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用于转换字符。)