只需删除第一个字符和最后一个字符之前的空格
FOO=" ffs ff ssdf hfdh hfghfghfgh hhgfg "
result
ffs ff ssdf hfdh hfghfghfgh hhgfg
谢谢
只需删除第一个字符和最后一个字符之前的空格
FOO=" ffs ff ssdf hfdh hfghfghfgh hhgfg "
result
ffs ff ssdf hfdh hfghfghfgh hhgfg
谢谢
假设目标是修改变量(以降低可移植性的顺序):
# POSIX
foo=${foo#"${foo%%[! ]*}"} foo=${foo%"${foo##*[! ]}"}
# Bash/ksh
${BASH_VERSION+'false'} || shopt -s extglob
foo=${foo##+( )} foo=${foo%%+( )}
# Bash4/ksh
IFS=' ' read -rd '' foo < <(printf %s "$foo")
# Bash4/ksh93
${KSH_VERSION+'false'} || typeset -n BASH_REMATCH=.sh.match
[[ $foo =~ ^\ *([! ].*[! ])\ *$ ]]
foo=${BASH_REMATCH[1]}
# ksh93
foo=${foo/~(K)*(\ )@([! ]*[! ])*(\ )/\2}
像往常一样,如果不知道您从什么开始以及您想对结果做什么,就不可能推荐最佳方法。
echo " ffs ff ssdf hfdh hfghfghfgh hhgfg " | sed -e 's/^ *//g' -e 's/ *$//g'
回声 $FOO | sed 's/^ *//' | sed 's/ *$//'
如果您使用的是 bash v4,那么这应该适合您。
FOO=${FOO:1:-1}