$ awk -F': ' '
{
count[$1]++;
data[$1] = $1 in data ? data[$1]", "$2 : $2
}
END {
for (id in count) {
printf "%s: ",id;
print (count[id]>1 ? "[ "data[id]" ]" : data[id])
}
}' data.txt
hmz_age: '21'
tom_age: '31'
fd_year_anne: '1987'
school: [ 'anne', 'svp' ]
name: [ 'tom', 'hmz', 'toli' ]
toli_age: '41'
fd_year_svp: '1982'
status_hmz_mar: 'no'
status_tom_mar: 'yes'
U. Windl
- 1.8k
- 15
- 33