我想在所有(已知)格式条件下从 .ssh/known_hosts 文件中提取主机名/ip:
- 仅主机名
hostname pubkey
- 主机名与ip:
hostname,1.1.1.1 pubkey
- 带有非反向 IP 的主机名和自定义端口:
[hostname]:1234,[1.1.1.1]:1234 pubkey
- 安全地忽略散列主机(如果有)
答案1
awk -F'[ ,:]' '/^[0-9a-zA-Z]/{sub(/\[/,"",$1); sub(/\]/,"",$1); print $1}' ~/.ssh/known_hosts