# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(?m)(?P<head>^tacacs[\s|-]server\shost\s)(?P<ipv4>(\d+\.){3}\d+)(?P<key>\skey\s[0-9]\s\S[a-zA-Z0-9]+\S)?(?P<tail>(.*))//gm;t' <<< "aaa group server tacacs+ tacacs
server 172.26.60.235
server 172.24.248.209
source-interface mgmt0
aaa group server tacacs+ TACACS-GROUP
server 172.26.60.235
source-interface mgmt0
aaa group server tacacs+ TACACS-TEST1
server 172.26.60.235
server 172.24.248.209
aaa group server tacacs+ tacacs+group
source-interface mgmt0
ip tacacs source-interface mgmt0
tacacs-server host 172.26.60.235 key 7 \"Foihmr3\" timeout 5
tacacs-server host 172.24.248.209 key 7 \"Foihmr3\"
tacacs server host 172.24.248.209 key 7 \"Foihmr3\"
tacacs-server host 172.26.60.235 timeout 5
tacacs-server host 172.26.60.235
tacacs-server host 172.24.248.209"
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for SED, please visit: https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html