Substituindo o conteúdo do arquivo pelo SED em 2 arquivos

1

Eu tenho 2 arquivos.

O arquivo 1 é assim:

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

O arquivo 2 é um arquivo JSON com variáveis como espaços reservados para esses dados. Por exemplo, %%company%% para onde o nome da empresa irá.

Eu preciso pesquisar no arquivo 1 para obter os valores de empresa, endereço, zip etc e substituir as variáveis no arquivo 2 por esses dados.

Quaisquer pensamentos sobre a melhor maneira de conseguir isso?

    
por Nick 22.12.2016 / 02:22

2 respostas

1

Execute isto:

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

Onde

substitude.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{

}

data.txt:

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

a.json:

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

Resultado

{ "identifier": "123", "name": "Acme CO" }
    
por 22.12.2016 / 04:29
0
perl -nE  'if ($ARGV eq "f2" ){ say s/%%(.*?)%%/$d{$1}/gr } 
           elsif( /(\w+):\s*"(.*)"/ ){ $d{$1}=$2 }'    f1 f2
    
por 03.01.2017 / 17:24