bash - Parsing a comma-separated "key: value" string -
i have text file several blocks several lines may this:
{ key1: value, key2: value, key3: value, key4: value, key5: value } { key1: value, key2: value, key3: value, key4: value, key5: value }
given key
, how can corresponding values? note neither key names nor values have fixed length, blocks start , finish braces , pairs separated commas.
my first try grep
, cut
, couldn't keys. guess should easy sed
or awk
, syntax confuses me lot.
first solution grep:
grep -o 'key5: [^, }]*' file
shows someting like:
key5: value key5: value
to remove keys:
grep -o 'key5: [^, }]*' file | sed 's/^.*: //' value value
Comments
Post a Comment