Chinaunix
标题:
bash/AWK 或 C 查找相同项
[打印本页]
作者:
ulnait
时间:
2013-12-19 15:51
标题:
bash/AWK 或 C 查找相同项
本帖最后由 ulnait 于 2013-12-19 15:58 编辑
有下面一个随机数的文本100行:
21 14
18
25 09 17
18
15 61
16
18
41
. . .
. . .
. .
如何查找中间相同的项(已知每个字段有且只有一个值相同):例如 18
作者:
WilliBhamlll
时间:
2013-12-19 15:59
awk '{for(i=0;i++<NF;)a[$i]++}END{for(i in a)if(a[i]>1)print i}' file
18
复制代码
作者:
zooyo
时间:
2013-12-19 16:33
提示:
作者被禁止或删除 内容自动屏蔽
作者:
yaozhibing41001
时间:
2013-12-19 16:47
回复
1#
ulnait
[root@mail5 ~]# cat a
21 14 18
25 09 17
18 15 61
16 18 41
21 14 18
25 09 17
18 15 61
16 18 41
21 14 18
25 09 17
18 15 61
16 18 41
[root@mail5 ~]# awk '{for(i=0;i++<NF;)a[$i]++}END{m=0;for(i in a)if(a[i] > m){m=a[i];x=i}print x}' a
18
复制代码
作者:
yaozhibing41001
时间:
2013-12-19 16:48
回复
2#
WilliBhamlll
这个题目貌似找出现最多的一个数值。。
作者:
WilliBhamlll
时间:
2013-12-19 16:59
回复
5#
yaozhibing41001
恩,可能是的。
作者:
reyleon
时间:
2013-12-19 19:41
cat file | xargs -n1 | sort -n | uniq -c | sort -n | awk 'END{print $2}'
复制代码
作者:
关阴月飞
时间:
2013-12-19 20:21
本帖最后由 关阴月飞 于 2013-12-19 20:22 编辑
回复
1#
ulnait
目测一下:
xargs -n1 < file|sort |uniq -d
复制代码
作者:
yinyuemi
时间:
2013-12-19 20:41
awk -vRS='\n| ' 'a[$1]++ ==1 {print ;exit}'
作者:
lxzkenney
时间:
2013-12-19 21:54
提示:
作者被禁止或删除 内容自动屏蔽
作者:
lxzkenney
时间:
2013-12-19 21:57
提示:
作者被禁止或删除 内容自动屏蔽
作者:
ulnait
时间:
2013-12-19 22:10
本帖最后由 ulnait 于 2013-12-19 22:25 编辑
恩, 原本是一个剩余定理 同余数组的解法,我这是笨办法,先计算出值 再查找每个字段包含的那个值
回复
5#
yaozhibing41001
作者:
yestreenstars
时间:
2013-12-20 00:50
awk '{while(++i<=NF)a[$i]++;i=0}END{for(i in a)if(a[i]>1)print i}'
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2