用awk替换字符

用awk替换字符,awk,Awk,我有以下文件: 61 12451 61 13451 61 14451 61 15415 12 48469 12 78456 12 47845 32 45778 32 48745 32 47845 32 52448 32 87451 我想要的输出如下所示,例如,61 s被1替换,因为它们是第一次出现,并且重复了4次,然后第二列从2变为5,因为它们是成对比较,1到1被忽略,但第二列应该从2开始,其余的也是如此 1 2 1 3 1 4 1 5 2 3 2 4 2 5 3 4 3 5 3 6 3 7

我有以下文件:

61 12451
61 13451
61 14451
61 15415
12 48469
12 78456
12 47845 
32 45778
32 48745
32 47845
32 52448
32 87451
我想要的输出如下所示,例如,61 s被1替换,因为它们是第一次出现,并且重复了4次,然后第二列从2变为5,因为它们是成对比较,1到1被忽略,但第二列应该从2开始,其余的也是如此

1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
3 6
3 7
3 8

关于如何通过AWK实现这一点,有什么建议吗?谢谢

不确定这一行是否有帮助:

awk '$1!=p{++i;j=i+1}{print i,j++;p=$1}' file

至少它给出了所需的输出。

它可以像这样用一个awk命令编写

awk '{a[NR]=$1;b[NR]=$2;c[NR]=$1;d[NR]=$2} END {for(i=1; i<=NR; i++){if(i==1){c[i]=1;d[i]=2}else if(a[i]==a[i-1]){c[i]=c[i-1];d[i]=1+d[i-1]}else{c[i]=1+c[i-1];d[i]=c[i]+1}print c[i],d[i]}}' pairwise.txt > output.txt
awk'{a[NR]=$1;b[NR]=$2;c[NR]=$1;d[NR]=$2}END{for(i=1;i)