365读书网-读万卷书行万里路

365读书网-读万卷书行万里路

shell中如何去掉字符串中间的空格?

59

在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`命令。