在Shell中,可以使用`sed`或`awk`命令来去掉字符串中间的空格。以下是具体的方法:
使用`sed`命令
`sed`命令可以通过正则表达式替换字符串中的空格。例如,假设有一个变量`str`,里面包含了空格:
```sh
str="hello world"
new_str=$(echo $str | sed 's/ //g')
```
这行命令会把变量`str`中的所有空格都替换为没有空格的字符串。
使用`awk`命令
`awk`命令也可以通过正则表达式替换字符串中的空格。例如:
```sh
str="hello world"
new_str=$(echo $str | awk '{gsub(/ /, ""); print}')
```
这行命令会使用`awk`的`gsub`函数来替换所有空格为空字符串,并输出处理后的字符串。
使用`sed`命令去除行首和行尾的空格
如果只想去除字符串前后的空格,可以使用以下命令:
```sh
str=" hello world "
new_str=$(echo $str | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
```
这个命令会先去除行首的空格,然后去除行尾的空格。
使用`tr`命令
另一个去除字符串中间空格的方法是使用`tr`命令,它可以将指定的字符替换为其他字符。例如:
```sh
str="hello world"
new_str=$(echo $str | tr -d ' ')
```
这行命令会删除字符串中的所有空格。
根据具体需求选择合适的方法即可。如果需要去除字符串前后的空格,推荐使用`sed`或`tr`命令;如果需要去除字符串中间的空格,推荐使用`sed`或`awk`命令。