shell替换字符串中连续2个以上的空格为一个空格
时间: 2024-02-05 20:12:11 浏览: 149
可以使用sed命令进行字符串替换,其中使用正则表达式匹配连续2个以上的空格,然后将其替换为一个空格。具体命令如下:
```
echo "hello world" | sed 's/ \{2,\}/ /g'
```
输出结果为:
```
hello world
```
解释一下这个命令:
- `echo "hello world"`:输出一个字符串,其中包含多个连续的空格。
- `sed 's/ \{2,\}/ /g'`:使用sed命令进行字符串替换,其中`s/old/new/g`表示将old替换为new,g表示全局替换。`/ \{2,\}/`表示匹配两个或以上的空格,然后将其替换为一个空格。
相关问题
shell替换字符串中连续2个以上的空格为一个逗号
可以使用sed命令来实现:
```
sed 's/ */,/g' filename
```
其中`s`表示替换操作,`/ */`表示匹配两个或更多连续空格的正则表达式,`/g`表示全局替换。`filename`是要处理的文件名。
如果要直接在原文件中进行替换,可以使用 `-i` 参数:
```
sed -i 's/ */,/g' filename
```
shell替换字符串中的空格
在shell中,可以使用${变量//旧字符串/新字符串}来替换字符串中的空格。具体实现如下:
假设有一个变量str,其中包含空格,如下所示:
```
str="hello world"
```
我们可以使用下面的命令将空格替换成下划线:
```
str=${str// /_}
```
执行完上述命令后,变量str的值就变成了"hello_world"。其中,//表示替换所有匹配的字符串,空格是旧字符串,下划线是新字符串。
阅读全文