Shell中去除字符串里的空格或指定字符的方法

网上很多办法,虽然是对的,用起来结果不对。这里提供正确办法。

去掉开头的空格

$text=" 123 456 "
# 这个写法,保证了得到正确的结果。
text=`echo $text | sed -e 's/^[ \t]*//g'`
# 这些方法没有测试,写法参照上面的。
# 去掉尾巴的空格 sed 's/[ \t]*$//g'
# 删除前、后空格,不删除中间空格 sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g'
# 删除字符串中所有空格 sed 's/[[:space:]]//g'

当然还有简单办法:

# 只替换一个
text=${text/ /-}
# 全部替换
text=${text// /-}

相关推荐