我在CentOS 5.5上使用bash.我有一个用空格分隔的字符串,并且该字符串仅包含字母和数字,并且此字符串可能有多余的空间,例如,“单词”和“字符串”之间有多个空格:
$exmple= "This is a lovey 7 words string"
@H_502_7@我想删除长度小于2的单词,在此示例中,需要删除单词“ a”和“ 7”.并删除所有多余的空间,一个单词和另一个单词之间只有一个空格.
因此字符串变为:
"This is lovey words string"
@H_502_7@解决方法:
编辑(基于ennuikiller的sed答案)
使用纯Bash:
newstring=${exmple// ? / } # remove one character words
@H_502_7@要规范空白:
read newstring <<< $newstring
@H_502_7@要么
shopt -s extglob newstring=${newstring//+( )/ }
@H_502_7@原版的:
exmple="This is a lovey 7 words string" for word in $exmple do if (( ${#word} >= 2 )) then newstring+=$sp$word sp=' ' fi done
@H_502_7@版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。