1

我想从字符串的开头和结尾删除空格(\t、\n、\r、空格)(如果存在)

怎么做?

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

4

3 回答 3

3

如果您使用的是 bash (您的想法${str#}似乎暗示了这一点),那么您可以使用它:

echo "${str##[[:space:]]}" # trim all initial whitespace characters
echo "${str%%[[:space:]]}" # trim all trailing whitespace characters
于 2015-12-09T11:27:13.073 回答
0

如果你可以使用sed那么:

echo "${str}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
于 2015-12-09T11:26:15.623 回答
0

你可以说

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

或者,如果您的版本\s支持,则用于匹配制表符和空格。sed

于 2015-12-09T11:25:09.923 回答