Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String bash:如何在字符串中添加空格?_String_Bash_Spaces - Fatal编程技术网

String bash:如何在字符串中添加空格?

String bash:如何在字符串中添加空格?,string,bash,spaces,String,Bash,Spaces,我有这样一个字符串: string="aaa-bbb" 但是我想在char'-'之前添加空格,所以我想这样: aaa -bbb 我尝试了很多东西,但我无法在那里增加空间。我试过使用echo$string |tr'-'''-'和其他一些东西,但没有成功 我有Linux Mint:GNU bash,版本4.3.8(1)尝试一下: printf "%s\n" "${string}" | sed 's/-/ -/g' 它查找-并将其替换为-(空格连字符)tr一次只能替换一个字符。您要查找的是sed

我有这样一个字符串:

string="aaa-bbb"
但是我想在char'-'之前添加空格,所以我想这样:

aaa -bbb
我尝试了很多东西,但我无法在那里增加空间。我试过使用
echo$string |tr'-'''-'
和其他一些东西,但没有成功

我有Linux Mint:GNU bash,版本4.3.8(1)

尝试一下:

printf "%s\n" "${string}" | sed 's/-/ -/g'

它查找
-
并将其替换为
-
(空格连字符)

tr
一次只能替换一个字符。您要查找的是
sed

result=$(echo "$string" | sed 's/-/ -/')
echo "$result"

echo“$string”| sed's/-/'

无需调用
sed
,在BASH中使用native:

$ foo="abc-def-ghi"
$ echo "${foo//-/ -}"
abc -def -ghi

请注意变量名称后的两个斜杠:第一个斜杠替换第一个匹配项,其中两个斜杠替换每个匹配项。

Bash具有内置字符串替换

result="${string/-/ -}"
echo "$result"
或者,您可以使用
sed

result=$(echo "$string" | sed 's/-/ -/')
echo "$result"

您要求shell回显未引用的变量
$string

发生这种情况时,变量内的空格用于拆分字符串:

$ string="a -b -c"
$ printf '<%s>\n' $string
<a>
<-b>
<-c>
$string=“a-b-c”
$printf'\n'$string

$printf'\n'$string“

要将变量从
-
更改为
-
,有许多解决方案:

sed:
string=“$(echo“$string”| sed's/-/-/g');回显“$string”

bash:
string=“${string/-/-};回显“$string”