Chinaunix
标题:
【急】请教:关于uniq -c和awk连用的问题。
[打印本页]
作者:
liuguanyu
时间:
2008-09-23 23:04
标题:
【急】请教:关于uniq -c和awk连用的问题。
现有一个log文件,各个字段间用\t隔开,
形如:111\t2 22\t3 3 3\t(由于字段可能含有空格,于是用\t分割)
我们需要计算重复行的值,
于是用sort | uniq -c
变成形如
5 111\t2 22\t3 3 3\t
下面要对结果入数据库。其中count值也要入库。
但是分界符是\t,而uniq -c分割符是空格,哪位大侠帮忙解决这个问题,使数据按统一分隔符分割能正确入库?
非常感谢
作者:
welcome008
时间:
2008-09-24 00:15
后面在做个转换不行吗?
sort | uniq -c|tr " " "\t"
看看可以不
作者:
galford433
时间:
2008-09-24 00:44
直接一个awk行么?
awk 'BEGIN{FS="\t";OFS="\t"}{a[$0]++}END{for(i in a)print a[i]"\t"i"\t"}' file
复制代码
[
本帖最后由 galford433 于 2008-9-24 00:59 编辑
]
作者:
blackold
时间:
2008-09-24 09:40
标题:
回复 #1 liuguanyu 的帖子
sort urfile|uniq -c| sed 's/^ *\([0-9]\+\) /\1\t/'
变成:
5\t111\t2 22\t3 3 3\t
作者:
liuguanyu
时间:
2008-09-24 16:41
标题:
回复 #2 welcome008 的帖子
谢谢,可是会吃掉后面的空格
作者:
liuguanyu
时间:
2008-09-24 16:41
标题:
回复 #4 blackold 的帖子
谢谢,只是sed不认\t
作者:
blackold
时间:
2008-09-24 16:44
原帖由
liuguanyu
于 2008-9-24 16:41 发表
谢谢,只是sed不认\t
版本问题。直接输入<tab>.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2