列による重複行の取得またはフィルタリング

列による重複行の取得またはフィルタリング

3つの列を持つファイルがありますが、3番目の列に重複行をインポートしたいと思います。たとえば、次のようになります。

AAA = 342  
BLABLABLA = 2  
BBBx2 = 23  
1+1 = 2  
KOKOKO= 5  
2x1 = 2  

出力は次のようになります。

BLABLABLA = 2  
1+1 = 2  
2x1 = 2  

sortを使ってみましたが、重複したuniq行を削除して印刷したいと思います。

ベストアンサー1

興味がある限り最後列の場合は、sortsumを使用してこれを実行できますuniq

$ sort -k3n test.txt |  uniq  -f2 -D
1+1 = 2
2x1 = 2
BLABLABLA = 2

ここでソートオプションを使用する-k3nと、ファイルは3番目のフィールドから数字順にソートされますuniq

-f2   Skip the first two fields before checking for uniqueness
-D    Print all the repeated lines

残念ながら、一意性を確認するフィールドの数を制御することはできません。確認する文字数を指定するために使用できますが、-wこれは関心のあるフィールドが固定幅の場合にのみ役立ちます。

また、末尾のスペースに注意してください。一意性を確認するテキストに含まれます。

おすすめ記事