我想从字符串的开头和结尾删除空格(\ t,\ n,\ r \ n,空格)
怎么做?
只有像${str#*}
这样的表达式才可能吗?
答案 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:]]*$//'