Versuchen Sie, diese -
cat f
James Miki:123-456-7890
Wang Tai: 234-563-6879
James Miki: 123-456-7890
James Miki: 456-456-8888 ### added for test case
Wang Tai: 234-563-6879 ### added for test case
Vipin Kumar : 878-432-2345 ### added for test case
Vipin Kumar : 878-432-2345 ### added for test case
awk -F':' '{gsub(/ /,"",$2)}{b[$1FS$2]++} END {for(k in b) if(b[k]>1) {split(k,u,":"); print v,u[1],v FS u[2]}}' v='"' OFS="" f
"Vipin Kumar ":878-432-2345
"Wang Tai":234-563-6879
"James Miki":123-456-7890
erklärt -
gsub(/ /,"",$2): Remove space from 2nd column
b[$1FS$2]++ : Create array b and store col1 and 2
if(b[k]>1) : Check duplicate record
split(k,u,":") : split the stored value in k (combination of col1 and 2) so that we can add double quote on first column.
SO ist kein freier Codierung Service. Bitte posten Sie, was Sie versucht haben. Was passiert mit nicht duplizierten Zeilen? –
Sind Sie bereit, andere Standard-UNIX-Programme wie 'sort' und' uniq' zu verwenden? Weil sie in einer solchen Situation dein Leben erleichtern werden. –
Ich tippte sort datenbuch2.txt | uniq -d, es gibt den eindeutigen Namen aus, aber wie fügt man dem Namen im Datenbuch2.txt "" hinzu – xmz