次のような繰り返しIDを含むJSON形式のレコードテキストファイルがあります。
{"ID":"93" , "ST":[42,77,51]}
{"ID":"21" , "ST":[43,4]}
{"ID":"94" , "ST":[65,11,4]}
{"ID":"93" , "ST":[42,77,51,29,63]}
{"ID":"73" , "ST":[21,20]}
{"ID":"94" , "ST":[65,11,4]}
{"ID":"77" , "ST":[87]}
重複項目をフィルタリングし、常に最初の一致を維持したいと思います。 ID が同じレコードの場合、ST フィールドは同じでも異なる場合もあります。
出力は次のとおりです。
{"ID":"93" , "ST":[42,77,51]}
{"ID":"21" , "ST":[43,4]}
{"ID":"94" , "ST":[65,11,4]}
{"ID":"73" , "ST":[21,20]}
{"ID":"77" , "ST":[87]}
同様の質問がありましたここただし、この場合、編集中のデータファイルはコンマ区切りのファイルです。ここではJSONデータを処理しており、目標は同じID値(正規表現一致可能)を持つ行を探して最新の行を維持することです。 awk、sed、または純粋なコマンドラインツールを使用してこの問題を解決する方法を知っている人はいますか?
答え1
awk
最初のフィールド(スペースで区切られたフィールド)でのみ一般的な重複排除技術を使用できます。
awk '!count[$1]++'