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