Chinaunix
标题:
怎样用awk来处理这个文件
[打印本页]
作者:
livelin
时间:
2008-06-05 15:31
标题:
怎样用awk来处理这个文件
文件内容:
74683 1001
74683 1002
74683 1011
74684 1000
74684 1001
74684 1002
74685 1001
74685 1011
74686 1000
....
100085 1000
100085 1001
文件就两列,希望处理成
74683 1001 1002 1011
74684 1000 1001 1002
...
就是只要第一列数字相同, 就把他们的第二列放一行上,中间空格分开
作者:
很平凡的Man
时间:
2008-06-05 15:44
刚学awk,不会,帮你顶一下
作者:
blackold
时间:
2008-06-05 15:48
标题:
回复 #1 livelin 的帖子
参考
类似问题
[
本帖最后由 blackold 于 2008-6-5 15:49 编辑
]
作者:
lemboyz
时间:
2008-06-05 15:58
cat yourfile | awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a
}'
作者:
demil
时间:
2008-06-05 16:15
try
awk '{if($1==a) {b[$1]=b[$1]" "$2;}else{a=$1;b[$1]=a" "$2;}}END{for(i in b) print b
;}' text
作者:
livelin
时间:
2008-06-05 16:18
谢谢楼上各位
试了一下 用数组的
都提示awk: (FILENAME=abc FNR=103332) fatal: attempt to use array `b' in a scalar context
作者:
blackold
时间:
2008-06-05 16:24
标题:
回复 #5 demil 的帖子
应该是
print b[i]
复制代码
吧。
Sorry.
呵呵,我发现问题所在了,不是demil 的问题,demil 的命令是对的。提交后b[ i ]变成了b. 看不到[ i ]了。请注意b后面的;}变成斜体了。
[
本帖最后由 blackold 于 2008-6-5 16:29 编辑
]
作者:
livelin
时间:
2008-06-05 16:32
太帅了 ok了 谢谢blackold demil 和lemboyz
作者:
Shell_HAT
时间:
2008-06-05 18:49
标题:
回复 #4 lemboyz 的帖子
贴代码的时候试试加个code标签,否则论坛可能会过滤掉一些字符。
cat yourfile | awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a[i]}'
复制代码
作者:
rdcwayx
时间:
2008-06-06 10:13
bucuo
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2