Unixファイルのテキスト処理

Unixファイルのテキスト処理

Unixフラットファイルに次のデータがあり、最初の2つの列の重複値を抑制し、次のように変換しようとしています。

1:x:4:3:2:y
1:x:7:9:l:z
1:0:3:j:k:m
2:9:r:s:6:u
2:m:y:5:7:9
2:u:7:9:7:6
3:a:b:c:d:e
3:a:b:d:e:f
3:a:b:n:r:s

到着する:

1:x:4:3:2:y
 : :7:9:l:z
 :0:3:j:k:m
2:9:r:s:6:u
 :m:y:5:7:9
 :u:7:9:7:6
3:a:b:c:d:e
 : :b:d:e:f
 : :b:n:r:s

ベストアンサー1

直接使用awk:

$ awk -F':' '++a[$1] > 1{ $1=" " }++b[$2] > 1{ $2=" " }1' OFS=':' inp_file
1:x:4:3:2:y
 : :7:9:l:z
 :0:3:j:k:m
2:9:r:s:6:u
 :m:y:5:7:9
 :u:7:9:7:6
3:a:b:c:d:e
 : :b:d:e:f
 : :b:n:r:s

おすすめ記事