关于AWK的一个问题!如何对文件分组进行统计?!见补充问题

1.txt111abc222abc333efg想得到如下结果应该怎么写呢!?abc2efg1谢谢!!!!... 1.txt
111 abc
222 abc
333 efg
想得到如下结果应该怎么写呢!?
abc 2
efg 1
谢谢!!!!
展开
 我来答
百度网友5311d79
2011-05-23 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3231万
展开全部
用shell脚本。

#!/bin/bash
myfile="1.txt"
touch tmp
while read line
do
info=`echo "$line"|awk '{print $2}'`
grep "$info" tmp >/dev/null 2>&1
if [ $? -eq 0 ]; then
num=`awk '{print $NF}' tmp`
num=`expr $num + 1`
sed -i "s/^\($info\t\)[0-9]*$/\1$num/" tmp
else
echo "$line"|awk '{print $2"\t"1}' >>tmp
fi
done <$myfile
exit 0

只需从头到尾遍历文件一次。与下面链接里的问题类似。
——————————————————————————————————
楼上shuguangbo的方法非常简洁,学习了!

参考资料: http://zhidao.baidu.com/question/270656814.html

kj129
2011-05-23 · TA获得超过514个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:228万
展开全部
相当于数据库 group by。先标记一下 回来研究 三楼 shuguangbo 高手!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shuguangbo
2011-05-23
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
awk '{ w[$2]+=1} END{ for (a in w) print a, w[a]}' 1.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式