【求助】文本替换问题。。。??急

【求助】文本替换问题。。。??急

对一个文件进行编辑,如果某行[B]只[/SIZE][/B][/COLOR]包括“UPE”三个文本字符,但是“UPE”的前面或后面可以存在多个空格或多个TAB,则将此行替换为“============”,最后返回替换的行数,再shell里应该用什么命令,grep or sed,???

   谢谢。给个例子阿。。。。      
具体的正则表达式应该是什么啊?
sed -e "/\s*UPE\s*/c\\ ============" sedtest.txt
我用了这个可是不是要求的,怎么才能体现 UPE 前后只有空格或制表符,而且在同一行中,不能出现其他的字符
UPE    (符合)
   UPE           (符合)
dfgff      UPE            (不符合)
l fdg           UPE          kjdghj  (不符合)
/\s*UPE\s*/     这个不行。
/[^\S]UPE[^\S]/  这个也不行呢。。。
正确的应该是什么??
急,谢谢阿,,高手帮忙。。。      
基本上知道怎么做了,
sed -e "/^\s*UPE\s*$/c\======"  sedtest

但是能统计匹配的行数吗?      
用 sed 来计数有点儿困难,可以试着用 grep 和 wc 来实现      
1,$/old/new/g      
[code]
BEGIN{count=0
}
/UPE/ && NF==1{
printf("========================\n")
count+=1
next
}
{print $0
}
END{
    printf("%d\n",count)
}      
复制内容到剪贴板
代码:
BEGIN{count=0
}
/UPE/ && NF==1{
printf("========================\n")
count+=1
next
}
{print $0
}
END{
    printf("%d\n",count)
}