2ファイルのファイル内容をSEDに置き換える

2ファイルのファイル内容をSEDに置き換える

2つのファイルがあります。

ファイル1は次のようになります。

Company: "Acme CO"
Address: "123 Main Street"
Zip: "12345"

ファイル2は、このデータのプレースホルダーである変数を含むJSONファイルです。たとえば、%%company%%会社名はどこに配置されますか?

会社、住所、郵便番号などの値をファイル1から取得し、ファイル2の変数をそのデータに置き換えることができる必要があります。

これを達成するための最良の方法のアイデアはありますか?

ベストアンサー1

これを実行してください:

 cat a.json | awk -v file="data.txt" -f substitude.awk

どこ

代替.awk

BEGIN{
    while(getline < file) {
            split($0, data, ":");
            key = "%%" tolower(data[1]) "%%";
            value = data[2];
            gsub(/^\s*\"|\"\s*$/, "", value)
            map[key] = value;
    }
}{
    s = $0;
    for(key in map) {
            gsub(key, map[key], s);  
    }
    print s;
}END{

}

データ.txt:

Id: "123"
Company: "Acme CO"
Address: "123 Main Street"
Zip: "12345"

a.json:

{ "identifier": "%%id%%", "name": "%%company%%" }

結果

{ "identifier": "123", "name": "Acme CO" }

おすすめ記事