linux shell 文本过滤问题

有一个如下文本:taa51354taa45654elakdjflkajfelakadfdfffbu13645bu13345bu12845bu12545bu12375bu1... 有一个如下文本:
taa51354
taa45654
elakdjflkajf
elakadfdfff
bu13645
bu13345
bu12845
bu12545
bu12375
bu12349
bu12346
bu12345
bu12344
bu12343
bu12342
bu12341
我现在想用grep ,sed或awk,做如下处理:
1.首字母相同的字符串只保留一个,并且这个字符串是首字母相同的字符串中的最大字符串(字符串比较,先比较首字母,首字母相同比较第2个字母,第2个相同比较第三个。。。。。)。
处理后结果应该如下:
taa51354
elakdjflkajf
bu13645
不知道脚本怎么写,各位高手帮忙!
展开
 我来答
derekwuguo
2010-09-03 · TA获得超过326个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:190万
展开全部
#!/bin/bash
#cat 前面是左撇号,tab键上面的那个,同样uniq后面那个符号也是也是
#$i前面是^,数字6上面的那个符号。
for i in `cat sourcefile |sort -r|cut -c1-1|uniq`
do
grep ^$i sourcefile |sed q |tee -a targetfile
done
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式