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”