You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWK在命令输出末尾添加<br>却出现在开头的问题

问题原因与解决办法

你的问题出在输入文件cmd.out的换行格式上——它是Windows系统的CRLF(\r\n)格式,而非Unix/Linux的LF(\n)格式。当AWK读取每行内容时,$0会包含末尾的回车符\r,执行printf $0"<br>\n"时,\r会让终端光标跳回到行首,随后输出的<br>就会覆盖掉行开头的部分字符,导致出现你看到的异常结果。

可以用以下几种方法解决:

  • 转换文件格式:先用dos2unix工具把文件转为Unix格式,再执行你的AWK命令:

    dos2unix cmd.out
    cat cmd.out | awk '{printf $0"<br>\n"}'
    
  • 在AWK中直接处理回车符:修改AWK命令,先移除每行末尾的\r再输出:

    awk '{sub(/\r$/,""); printf "%s<br>\n", $0}' cmd.out
    
  • 用tr过滤回车符:在管道中加入tr命令去掉所有\r:

    cat cmd.out | tr -d '\r' | awk '{printf $0"<br>\n"}'
    

内容的提问来源于stack exchange,提问作者user1400953

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 12:47:17