为什么tr
不简单地替换此输出中包含的换行符?
> curl -I www.google.com 2>/dev/null | egrep 'HTTP|Server'
HTTP/1.1 200 OK
Server: gws
> curl -I www.google.com 2>/dev/null | egrep 'HTTP|Server' | tr 'n' ' '
>
替换其他字符时工作正常:
> curl -I www.google.com 2>/dev/null | egrep 'HTTP|Server' | tr 'TS' ' '
H P/1.1 200 OK
erver: gws
>
因此,当我阅读正确的文档时,这一点变得非常清楚:HTTP 使用回车符和换行符,即换行符的可爱CRLF
!
例如,移除r
并更换n
将完成这项工作:
$ curl -I www.google.com 2>/dev/null | egrep 'HTTP|Server' | tr -d 'r' | tr 'n' ' '
HTTP/1.1 200 OK Server: gws
只需删除n
就会将回车符保留在输出中,然后 *nix shell 将其解释为返回到同一行的开头。我想是命令提示符覆盖了那里的内容。简单!