This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
fuss:awk [2017/12/25 11:33] – [Remove Duplicate Entries in File Without Sorting] office | fuss:awk [2018/01/02 01:47] – [Convert Key-Value Map to JSON] office | ||
---|---|---|---|
Line 63: | Line 63: | ||
will merge all the lines in a file by two. | will merge all the lines in a file by two. | ||
+ | |||
+ | ====== Convert Key-Value Map to JSON ====== | ||
+ | |||
+ | Given an input such as: | ||
+ | < | ||
+ | a1 : "abc | ||
+ | c2 : def | ||
+ | e3 : "ghi " | ||
+ | f5 :" a | ||
+ | </ | ||
+ | |||
+ | The following awk script: | ||
+ | <code bash> | ||
+ | awk -F: ' | ||
+ | function trim(s) { | ||
+ | return gensub(/^[ \t" | ||
+ | } | ||
+ | BEGIN { | ||
+ | printf " | ||
+ | } | ||
+ | NR > 1 { | ||
+ | printf(", | ||
+ | } | ||
+ | { | ||
+ | printf(" | ||
+ | } | ||
+ | END { | ||
+ | print " | ||
+ | } | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | will return the JSON object: | ||
+ | < | ||
+ | {" | ||
+ | </ | ||
+ | |||
+ | where keys and values are trimmed for spaces and quotes from the start and end. | ||
+ | |||
+ | [[iot/ | ||
+ | <code bash> | ||
+ | apcaccess | awk -F: ' | ||
+ | function trim(s) { | ||
+ | return gensub(/^[ \t" | ||
+ | } | ||
+ | BEGIN { | ||
+ | printf " | ||
+ | } | ||
+ | NR > 1 { | ||
+ | printf(", | ||
+ | } | ||
+ | { | ||
+ | printf(" | ||
+ | } | ||
+ | END { | ||
+ | print " | ||
+ | } | ||
+ | ' | ||
+ | </ | ||