Вы можете сделать это с помощью awk
, хотя решение с использованием uniq
может быть проще:
awk '/^File ID/ && !a[$3] { a[$3] = 1; print $3 }' file_list.txt
Только пара настроек:
$ awk '
BEGIN{FS="\t"; OFS=FS};
{ arr[$1] = arr[$1] == ""? $2 : arr[$1] "," $2 }
END {for (i in arr) print i, arr[i] }
' data
St1 apt1,apt2
St2 apt5
St3 apt6,apt7,apt8
sed -e '
:a
$!N
s/^\(\(\S\+\)\s\+.*\)\n\2\s\+/\1,/;ta
' yourfile
St1 apt1,apt2
St2 apt5
St3 apt6,apt7,apt8