我在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/