1

最初の文字と最後の文字の前のスペースを削除するだけです

FOO="   ffs ff ssdf hfdh     hfghfghfgh hhgfg      "

result
ffs ff ssdf hfdh     hfghfghfgh hhgfg

ありがとうございました

4

4 に答える 4

4

目標が変数を変更することであると仮定します (移植性の低い順に):

# 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}

いつものように、何から始めて何をしたいのかを知らずに最善のアプローチを推奨することは不可能です。

于 2013-03-05T09:06:09.600 に答える
1
echo "   ffs ff ssdf hfdh     hfghfghfgh hhgfg      " | sed -e 's/^ *//g' -e 's/ *$//g'
于 2013-03-05T02:02:34.403 に答える
0

bash v4 を使用している場合は、これでうまくいくはずです。

FOO=${FOO:1:-1}
于 2013-03-05T02:02:01.190 に答える
0

エコー $FOO | sed 's/^ *//' | sed 's/ *$//'

于 2013-03-05T02:03:45.027 に答える