http - 为什么在删除新行时 tr 会完全抑制我的 curl 响应标头输出?
问题描述
为什么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 将其解释为返回到同一行的开头。我想是命令提示符然后覆盖了那里的内容。简单的!
推荐阅读
- gnuplot - 在 Gnuplot 动画中显示更改的列值
- kubernetes - kubernetes statefulsets:节点在同一节点上重新启动后是否看到相同的持久卷
- documentation - 如何使用 pandoc 将特定网页转换为 markdown 或 asciidoc?
- json - 角度 6 指定的命令(“部署”)无效。有关可用选项的列表,请运行“ng help”
- windows - 是否有任何 API 可以预期无法通过 Path 环境变量访问 exe
- javascript - 点击获取高阶区块的id
- android - 根据设备更改地图开始缩放
- java - Eclipse e4 RCP 应用程序无法以“无法从 URI 检索捆绑包”错误启动
- python-3.x - 我面临文件结尾到达错误
- linux - 登录后使用用户密码执行脚本(linux/gnome)