1

タブで区切られた区切り文字を持つ.txtファイルには、多くの行が含まれる 4 つの列があり、それぞれの形式は次のとおりです。

12345  a  xxx   yyy  
12345  b  xxx   yyy     
67890  c  xxx   yyy  
12345  d  xxx   zzz   
67890  e  xxx   zzz  
12345  f  xxx   zzz  
23456  g  xxx   zzz   

.txtファイルの最初の列全体で一意の各整数のインスタンスをカウントし、.txtファイルに 5 番目の列を追加して、各行の 5 番目の値としてカウントを追加する方法。

12345  a  xxx   yyy  1  
12345  b  xxx   yyy  2     
67890  c  xxx   yyy  1   
12345  d  xxx   zzz  3   
67890  e  xxx   zzz  2  
12345  f  xxx   zzz  4  
23456  g  xxx   zzz  1 

UNIX コマンド ライン ストリーム処理プログラムのみを使用するソリューションを好みます。

4

1 に答える 1

3

を使用した片道awk

awk '
    BEGIN { OFS = "\t"; }
    { 
        key[ $1 ]++;
        print $0, key[ $1 ];
    }
' infile

出力:

12345  a  xxx   yyy     1
12345  b  xxx   yyy     2
67890  c  xxx   yyy     1
12345  d  xxx   zzz     3
67890  e  xxx   zzz     2
12345  f  xxx   zzz     4
23456  g  xxx   zzz     1
于 2012-08-18T18:27:48.300 に答える