単一行を使用して角かっこ内の重複行を削除する最善の方法は何ですか?

単一行を使用して角かっこ内の重複行を削除する最善の方法は何ですか?

私の意図は、各テストで重複したパラメータを削除することです。重複パラメータがある可能性があるいくつかのテストがあり、各テストから2番目のパラメータ重複を削除したいと思います。私のファイルは次のとおりです。

Test 1
{
  Param1 = "1";
  Param2 = "A";
  Param1 = "-1";
}
Test 2
{
  Param1 = "-1";
  Param3 = "B";
}

予想出力:

Test 1
{
  Param1 = "1";
  Param2 = "A";
}
Test 2
{
  Param1 = "-1";
  Param3 = "B";
}

ベストアンサー1

努力するawk

awk '$0=="{" {delete params} { if ($1 in params) next; params[$1]=1 }1' file

これは配列$1に保存され、配列に存在する場合はスキップされます。実行されるたびに配列が削除されます。params$1{

おすすめ記事