我有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" }
答案2
perl -nE 'if ($ARGV eq "f2" ){ say s/%%(.*?)%%/$d{$1}/gr }
elsif( /(\w+):\s*"(.*)"/ ){ $d{$1}=$2 }' f1 f2