免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: liaoboda

awk 找出相同的行 [复制链接]

论坛徽章:
0
发表于 2010-09-15 16:16 |显示全部楼层
本帖最后由 sunbw001 于 2010-09-15 16:55 编辑

都相同或有一个不同的

  1. [root@localhost pub]# cat data
  2. a 23 45 23 45 34 36 23
  3. b 23 45 23 45 34 36 23
  4. c 23 53 23 56 23 45 67
  5. d 23 44 23 45 34 36 23
  6. e 33 45 23 45 34 36 23
  7. f 23 53 23 56 23 45 64
  8. g 23 53 23 56 23 44 64
  9. [root@localhost pub]# cat test.awk
  10. #!/usr/bin/awk -f
  11. NR==1
  12. {
  13.         for(t=1;t<=NF;t++)
  14.         {
  15.                 a[NR" "t]=$t
  16.         }
  17. }
  18. NR>1
  19. {
  20.         for(k=1;k<NR;k++)
  21.         {
  22.                 for(x=2;x<=NF;x++)
  23.                 {
  24.                         ind=ind+(a[k" "x]==$x)
  25.                 }
  26.                 if(ind==NF-2)
  27.                 {
  28.                         for(z=2;z<=NF;z++)
  29.                         {
  30.                                 rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]" "a[k" "z]
  31.                         }
  32.                         rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]"#"
  33.                         for(z=2;z<=NF;z++)
  34.                         {
  35.                                 rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]" "$z
  36.                         }

  37.                 }
  38.                 if(ind==NF-1)
  39.                 {
  40.                         for(z=2;z<=NF;z++)
  41.                         {
  42.                                 rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]" "$z
  43.                         }
  44.                         rst["@"a[k" "1]"@"$1]="#"rst["@"a[k" "1]"@"$1]
  45.                 }
  46.                 ind=0
  47.         }
  48.         for(t=1;t<=NF;t++)
  49.         {
  50.                 a[NR" "t]=$t
  51.         }
  52. }
  53. END{for(g in rst){print g,rst[g]}}

  54. [root@localhost pub]# awk -f test.awk data
  55. a 23 45 23 45 34 36 23
  56. b 23 45 23 45 34 36 23
  57. c 23 53 23 56 23 45 67
  58. d 23 44 23 45 34 36 23
  59. e 33 45 23 45 34 36 23
  60. f 23 53 23 56 23 45 64
  61. g 23 53 23 56 23 44 64
  62. @a@b # 23 45 23 45 34 36 23
  63. @c@f  23 53 23 56 23 45 67# 23 53 23 56 23 45 64
  64. @a@d  23 45 23 45 34 36 23# 23 44 23 45 34 36 23
  65. @a@e  23 45 23 45 34 36 23# 33 45 23 45 34 36 23
  66. @f@g  23 53 23 56 23 45 64# 23 53 23 56 23 44 64
  67. @b@d  23 45 23 45 34 36 23# 23 44 23 45 34 36 23
  68. @b@e  23 45 23 45 34 36 23# 33 45 23 45 34 36 23
  69. [root@localhost pub]#

复制代码

论坛徽章:
0
发表于 2010-09-15 16:18 |显示全部楼层
一共26组数字,超过屏幕显示.会不会有影响

论坛徽章:
0
发表于 2010-09-15 17:47 |显示全部楼层
都相同或有一个不同的
sunbw001 发表于 2010-09-15 16:16

好像有点问题:
# 157 159 191 196 233 233 272 272 142 142 245 245 211 211 189 189 226 228 136 136 177 177 121 121 202 20221 202 202
@CY07@CY14 # 172 179 198 198 220 220 274 278 138 138 254 254 211 211 189 189 228 228 140 140 177 177 121 121 203 207
@MT04@MT18 # 172 183 187 191 225 225 274 274 138 138 241 241 211 211 189 189 226 226 136 140 177 177 121 125 203 207
@WL27@WL28 # 160 172 191 191 223 231 266 266 142 142 246 248 211 211 189 189 228 228 136 138 177 177 121 121 209 209
# 157 159 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 121 209 209 125 209 209
@CY06@CY15 # 157 172 198 198 220 220 278 278 138 140 254 254 207 211 189 189 228 228 138 140 177 177 121 121 203 207
# 157 159 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 125 209 209 125 209 209
# 157 160 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 125 209 209 125 209 209
# 157 159 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 125 209 209 121 209 209
@HLG04@HLG06 # 157 159 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 125 209 209
# 157 159 191 196 225 225 272 272 142 142 246 246 211 211 189 189 226 228 136 136 177 177 121 121 202 20721 202 207
# 157 159 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 125 209 209 121 209 209
# 157 159 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 121 209 209 125 209 209
@HLG03@HLG08 # 157 159 191 191 233 233 274 274 142 142 246 246 211 213 189 189 228 228 136 136 177 177 121 121 209 209
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP