ファイル内の複数の変数値を指定された入力値に置き換えます(ファイル内)

ファイル内の複数の変数値を指定された入力値に置き換えます(ファイル内)

次の内容を含む2つの入力ファイルがある場合:ネットワーク名を変更する方法(例:P1MSVmgmtvMが/rest/ethernet-networks/2bf8bc44-5b31-4e6c-99ed-d68b1e9acf9eに変更されました)。

ファイル1:(入力ファイル)

Data_NetworkSet_A
 P1MSVmgmtvM
 P1MSVvMotion
Data_NetworkSet_B
 P2MSVmgmtvM
 P2MSVvMotion
Edge_NetworkSet_A
 E1MSVEDGEiDMZRUE1
 E1MSVEDGEiEXPRUE1

ファイル2:(network_name値を含む)

    "name": "P2MSVvMotion",
    "uri": "/rest/ethernet-networks/1d3188e4-9c06-4e92-92fd-dde4d6985151",
    "name": "P1MSVmgmtvM",
    "uri": "/rest/ethernet-networks/2bf8bc44-5b31-4e6c-99ed-d68b1e9acf9e",
    "name": "P2MSVmgmtvM",
    "uri": "/rest/ethernet-networks/8be8cdd2-e9a6-4ecd-9aa3-435e810c68e9",
    "name": "E1MSVEDGEiEXPRUE1",
    "uri": "/rest/ethernet-networks/97a47127-5c28-4c5b-891a-5ea3736306d3",
    "name": "P1MSVvMotion",
    "uri": "/rest/ethernet-networks/c16f119a-b556-464d-96dd-7fee9fd8dbc2",
    "name": "E1MSVEDGEiDMZRUE1",
    "uri": "/rest/ethernet-networks/cbb509aa-ab8a-4d85-886b-0899424f324c",

予想出力:

Data_NetworkSet_A
 - /rest/ethernet-networks/2bf8bc44-5b31-4e6c-99ed-d68b1e9acf9e
 - /rest/ethernet-networks/c16f119a-b556-464d-96dd-7fee9fd8dbc2
Data_NetworkSet_B
 - /rest/ethernet-networks/8be8cdd2-e9a6-4ecd-9aa3-435e810c68e9
 - /rest/ethernet-networks/1d3188e4-9c06-4e92-92fd-dde4d6985151
Edge_NetworkSet_A
 - /rest/ethernet-networks/cbb509aa-ab8a-4d85-886b-0899424f324c
 - /rest/ethernet-networks/97a47127-5c28-4c5b-891a-5ea3736306d3

ベストアンサー1

参照され、2行に分割されるフィールドを除いて、これはかなり標準的な検索操作ですawk

awk -F: '
function strip(x) {
  gsub(/[",]/,"",x)
  return x
}
  NR==FNR {
    i = strip($2)
    if (getline > -1) {
      a[i] = strip($2)
    }
    next
  } 
  $1 in a {
    $1 = " -"a[$1]
  } 1' file2 file1

与える

Data_NetworkSet_A
 - /rest/ethernet-networks/2bf8bc44-5b31-4e6c-99ed-d68b1e9acf9e
 - /rest/ethernet-networks/c16f119a-b556-464d-96dd-7fee9fd8dbc2
Data_NetworkSet_B
 - /rest/ethernet-networks/8be8cdd2-e9a6-4ecd-9aa3-435e810c68e9
 - /rest/ethernet-networks/1d3188e4-9c06-4e92-92fd-dde4d6985151
Edge_NetworkSet_A
 - /rest/ethernet-networks/cbb509aa-ab8a-4d85-886b-0899424f324c
 - /rest/ethernet-networks/97a47127-5c28-4c5b-891a-5ea3736306d3

おすすめ記事