cat in
ID1 nick-john-helena
ID2 george-andreas-lisa-anna-matthew-andreas-lisa
ID3 olivia-niels-peter-lars-niels-lars-olivia-olivia
####
perl -MList::Util=uniq -ple '
s/
^ # Beginning of line (BOL).
\w+ # Any "words".
\s+ # Any whitespace (like tabs).
\K # "Keep" whats to the left.
(\S+) # Capture and replace next non whitespace (words).
/
join "-", # 4: n1-n2-n3
uniq # 3: [ "n1", "n2", "n3" ]
split "-", # 2: [ "n1", "n2", "n1", "n3" ]
$1 # 1: n1-n2-n1-n3
/xe # Freespace regex and eval replacement.
' in
####
ID1 nick-john-helena
ID2 george-andreas-lisa-anna-matthew
ID3 olivia-niels-peter-lars