shell过滤掉空格
时间: 2024-11-06 18:14:02 浏览: 8
shell模糊匹配与正则详解
在shell脚本中,如果你想过滤掉字符串中的空格(包括单个空格字符和连续的多个空格),你可以使用内置的`tr`(translate)命令,结合`<`(读取输入)和`>`(输出到文件)操作符。下面是几个常用的选项:
1. **移除所有空格**:
```
echo "your string with spaces" | tr -d ' '
```
`tr -d ' '`会删除所有的空白字符,包括空格。
2. **替换为空字符串**:
```
echo "your string with spaces" | tr ' ' ''
```
这里`' '`代表空格,`''`表示空字符串,所以空格会被替换为空。
3. **保留非空格字符并去除连续空格**:
```
echo "your string with multiple spaces " | tr -s ' '
```
`-s` 选项合并连续的空白字符。
4. **如果想同时删除行首和行尾的空格**:
```
echo -e "your string with leading and trailing spaces\nanother line with spaces" | tr -d '\r\ \n'
```
使用`echo -e`转义换行符,然后删除所有`\r`(回车)、`\ `(空格)和`\n`(换行)。
以上操作都是实时转换的,如果需要保存结果到文件,可以将管道(`|`)后的命令改为重定向(`>`), 例如 `echo ... | tr ... > output.txt`.
阅读全文