最初のフィールドと2番目のフィールドの最初のn文字に基づいてCSVから重複行を削除する方法は?

最初のフィールドと2番目のフィールドの最初のn文字に基づいてCSVから重複行を削除する方法は?

3列csvファイルの場合、list.csv最初のフィールドに一致する後続の重複行を削除し、2番目のフィールドに一致する最初の3文字のみを削除するにはどうすればよいですか?一部の行の2番目のフィールドには3文字未満があります。

リスト.csv:

12,12345,a
12,12345,b
123,12345,a
1234,12,b
1234,12345,a
567,567,a
567,56712,a
567,56734,a
567,6789,a

予想出力:

12,12345,a
123,12345,a
1234,12,b
1234,12345,a
567,567,a
567,6789,a

ベストアンサー1

sortそれも可能です。

 sort -t, -k1,1 -k2.1,2.3 -u <list.csv
 12,12345,a
 123,12345,a
 1234,12,b
 1234,12345,a
 567,567,a
 567,6789,a

おすすめ記事