- 论坛徽章:
- 0
|
本帖最后由 sunbw001 于 2010-09-15 16:55 编辑
都相同或有一个不同的
- [root@localhost pub]# cat data
- a 23 45 23 45 34 36 23
- b 23 45 23 45 34 36 23
- c 23 53 23 56 23 45 67
- d 23 44 23 45 34 36 23
- e 33 45 23 45 34 36 23
- f 23 53 23 56 23 45 64
- g 23 53 23 56 23 44 64
- [root@localhost pub]# cat test.awk
- #!/usr/bin/awk -f
- NR==1
- {
- for(t=1;t<=NF;t++)
- {
- a[NR" "t]=$t
- }
- }
- NR>1
- {
- for(k=1;k<NR;k++)
- {
- for(x=2;x<=NF;x++)
- {
- ind=ind+(a[k" "x]==$x)
- }
- if(ind==NF-2)
- {
- for(z=2;z<=NF;z++)
- {
- rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]" "a[k" "z]
- }
- rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]"#"
- for(z=2;z<=NF;z++)
- {
- rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]" "$z
- }
- }
- if(ind==NF-1)
- {
- for(z=2;z<=NF;z++)
- {
- rst["@"a[k" "1]"@"$1]=rst["@"a[k" "1]"@"$1]" "$z
- }
- rst["@"a[k" "1]"@"$1]="#"rst["@"a[k" "1]"@"$1]
- }
- ind=0
- }
- for(t=1;t<=NF;t++)
- {
- a[NR" "t]=$t
- }
- }
- END{for(g in rst){print g,rst[g]}}
- [root@localhost pub]# awk -f test.awk data
- a 23 45 23 45 34 36 23
- b 23 45 23 45 34 36 23
- c 23 53 23 56 23 45 67
- d 23 44 23 45 34 36 23
- e 33 45 23 45 34 36 23
- f 23 53 23 56 23 45 64
- g 23 53 23 56 23 44 64
- @a@b # 23 45 23 45 34 36 23
- @c@f 23 53 23 56 23 45 67# 23 53 23 56 23 45 64
- @a@d 23 45 23 45 34 36 23# 23 44 23 45 34 36 23
- @a@e 23 45 23 45 34 36 23# 33 45 23 45 34 36 23
- @f@g 23 53 23 56 23 45 64# 23 53 23 56 23 44 64
- @b@d 23 45 23 45 34 36 23# 23 44 23 45 34 36 23
- @b@e 23 45 23 45 34 36 23# 33 45 23 45 34 36 23
- [root@localhost pub]#
复制代码 |
|