我想从字符串的开头和结尾删除空格(\t、\n、\r、空格)(如果存在)
怎么做?
只有像这样的表达式才有可能${str#*}
吗?
如果您使用的是 bash (您的想法${str#}
似乎暗示了这一点),那么您可以使用它:
echo "${str##[[:space:]]}" # trim all initial whitespace characters
echo "${str%%[[:space:]]}" # trim all trailing whitespace characters
如果你可以使用sed
那么:
echo "${str}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
你可以说
sed -e 's/^[ \t\r\n]*//' -e 's/[ \t\r\n]*$//' <<< "string"
# ^^^^^^^^^^^ ^^^^^^^^^^
# beginning end of string
或者,如果您的版本\s
支持,则用于匹配制表符和空格。sed