一意のSTRINGを表示する行を削除する

一意のSTRINGを表示する行を削除する

おおよその内容を含むテキストファイルがあります。 1,200万行、各行は4つのフィールド(1、2、3、4列)で構成されています。

ほとんどの行には列2に固有のSTRINGがあり、それらを削除したいと思います。フルテキストファイルは、列2(最も小さいものから大きいものまで)に従ってソートされます。列2に同じSTRINGがある行は常に連続しています。

テキストファイルの2列には、通常、同じ文字列を含む2、3、4、または5つの連続した行があります。以下は、最後のテキストファイルに保持したいものです。

column1 column2 column3 column4  
WT 1 ILS G  
WT 2 DSG E          
WT 3 WYT S 
. . . .  
WT 106  AAA X  
WT 106  BBB Y  
. . . .  
WT 2704 CCC X  
WT 2704 DDD Y 
WT 2704 EEE X  
. . . .  
WT 87520 FFF X  
WT 87520 GGG X  
WT 87520 HHH X  
WT 87520 III Y  
. . . .  


私が達成したいもの:

column1 column2 column3 column4  
WT 106  AAA X  
WT 106  BBB Y  
WT 2704 CCC X  
WT 2704 DDD Y 
WT 2704 EEE X  
WT 87520 FFF X  
WT 87520 GGG X  
WT 87520 HHH X  
WT 87520 III Y  

あなたの時間と助けに感謝します。最高、

ローラン

ベストアンサー1

awk 'FNR==1 {print; next} $2==p2 {print p $0; p=""; next} {p=$0 ORS; p2=$2}' file

列2が一致する場合:前の行と現在の行を印刷し、前の行を保持している変数を消去して次の行に移動します。

おすすめ記事