Chinaunix

标题: 如何用SHELL实现分类汇总? [打印本页]

作者: zhao_yi707    时间: 2007-01-12 20:08
标题: 如何用SHELL实现分类汇总?
比如我有如下字段,第一列已经排好序:
1  a
1  b
1  a
1  c
2  b
2  b
2  c
3  c
3  a
4  e
4  e
4  e
4  e
如何实现显示第一列相同的记录类别中,有多少个不同的第2个字段.
如上结果应该是:
1 3
2 2
3 2
4 1

如果实现呢?多谢,多谢.
作者: hebioldman    时间: 2007-01-12 20:57
标题: 回复 1楼 zhao_yi707 的帖子
惭愧,思考了大概20分钟才想出来。
sort -u testsrc1.txt | awk '{element[$1]++;} END{for(item in element){print item," ",element[item]}}' | sort
作者: tanyear    时间: 2007-01-13 10:00
sort test.file|uniq |cut -d" " -f1 |uniq -c|rev
1 3      
2 2      
3 2      
4 1
作者: awk就是awp加ak    时间: 2007-01-13 11:50
try
  1. awk '{ if (!count[$1,$2]++) sum[$1]++; }
  2. END { for (i in sum) print i ": " sum[i]; }' urfile
复制代码

作者: zjya    时间: 2007-01-15 13:03
标题: 达到效果 担不是最好的方法
#!bin/sh
#set -x
cat aa |sort -u | awk '{print $1}' >test.txt
cat test.txt | while read ROW
do
  COUNT=`cat test.txt |grep "$ROW"|wc -l`
  echo "$COUNT $ROW"  >>cc.txt
done
bash-2.05# sort -u cc.txt
       1 4
       2 2
       2 3
       3 1




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2