如何删除shell中字符串的开头和结尾的空格(\ t \,\ n,\ n \ n \ n,空格)?

时间:2015-12-09 11:20:29

标签: shell ash

我想从字符串的开头和结尾删除空格(\ t,\ n,\ r \ n,空格)

怎么做?

只有像${str#*}这样的表达式才可能吗?

3 个答案:

答案 0 :(得分:3)

如果你正在使用bash(你的${str#}的想法似乎暗示),那么你可以使用它:

echo "${str##[[:space:]]}" # trim all initial whitespace characters
echo "${str%%[[:space:]]}" # trim all trailing whitespace characters

答案 1 :(得分:0)

你可以说

sed -e 's/^[ \t\r\n]*//' -e 's/[ \t\r\n]*$//' <<< "string"
#         ^^^^^^^^^^^           ^^^^^^^^^^
#         beginning            end of string

如果\s版本支持制表符和空格,请使用sed来匹配制表符和空格。

答案 2 :(得分:0)

如果您可以使用sed,那么:

echo "${str}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'