在bash shell中删除字符串中逗号的空格

use*_*997 9 bash

我想用逗号替换字符串中的空格/空格.

STR1=This is a string 
Run Code Online (Sandbox Code Playgroud)

STR1=This,is,a,string
Run Code Online (Sandbox Code Playgroud)

Mat*_*Mat 19

不使用外部工具:

echo ${STR1// /,}
Run Code Online (Sandbox Code Playgroud)

演示:

$ STR1="This is a string"
$ echo ${STR1// /,}
This,is,a,string
Run Code Online (Sandbox Code Playgroud)

请参阅bash:操作字符串.


anu*_*ava 12

只需使用sed:

echo $STR1 | sed 's/ /,/g'
Run Code Online (Sandbox Code Playgroud)

或纯BASH方式::

echo ${STR1// /,}
Run Code Online (Sandbox Code Playgroud)


Ken*_*ent 6

kent$  echo "STR1=This is a           string"|awk -v OFS="," '$1=$1'
STR1=This,is,a,string
Run Code Online (Sandbox Code Playgroud)

注意:

如果有继续空白,它们将被替换为一个逗号.如上例所示.

  • 这几乎肯定是访问此问题的大多数人正在寻找的答案,而不是用一系列逗号替换一系列空格的变体。 (2认同)