我在CentOS 5.5上使用bash。我有一个用空格分隔的字符串,并且该字符串仅包含字母和数字,并且此字符串可能有多余的空间,例如,"words""string"之间有多个空格:

$exmple= "This is a lovey 7 words   string"

我想删除长度小于2的单词,在此示例中,需要删除单词"a""7"。并删除所有多余的空间,一个单词和另一个单词之间只有一个空格。

因此字符串变为:
"This is lovey words string"

最佳答案

编辑(基于ennuikiller的sed答案)

使用纯Bash:

newstring=${exmple// ? / }   # remove one character words

要规范空白:
read newstring <<< $newstring

要么
shopt -s extglob
newstring=${newstring//+( )/ }

原始:
exmple="This is a lovey 7 words   string"
for word in $exmple
do
    if (( ${#word} >= 2 ))
    then
        newstring+=$sp$word
        sp=' '
    fi
done

关于linux - 删除bash中长度小于2的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4417663/

10-10 09:23