$ wget https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
$ head service-names-port-numbers.csv
Service Name,Port Number,Transport Protocol,Description,Assignee,Contact,Registration Date,Modification Date,Reference,Service Code,Unauthorized Use Reported,Assignment Notes
,0,tcp,Reserved,,,,2024-12-20,[RFC6335],,,
,0,udp,Reserved,,,,2024-12-20,[RFC6335],,,
tcpmux,1,tcp,TCP Port Service Multiplexer,[Mark_Lottor],[Mark_Lottor],,,,,,
tcpmux,1,udp,TCP Port Service Multiplexer,[Mark_Lottor],[Mark_Lottor],,,,,,
,2,tcp,Reserved,,,,2025-02-13,,,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]"
,2,udp,Reserved,,,,2025-02-13,,,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]"
,3,tcp,Reserved,,,,2025-02-13,,,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]"
,3,udp,Reserved,,,,2025-02-13,,,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]"
,4,tcp,Unassigned,,,,,,,,
$ mlr --csv --opprint cut -o \
    -f 'Service Name','Port Number','Transport Protocol',Description then \
    filter '$Description !=~ "(Reserved|Unassigned)" && ${Port Number} != ""' \
    service-names-port-numbers.csv
Service Name    Port Number Transport Protocol Description
tcpmux          1           tcp                TCP Port Service Multiplexer
tcpmux          1           udp                TCP Port Service Multiplexer
compressnet     2           tcp                Management Utility
[...]
nusrp           49001       tcp                Nuance Unity Service Request Protocol
nusdp-disc      49001       udp                Nuance Unity Service Discovery Protocol
inspider        49150       tcp                InSpider System

More information

Refs