DB2 CLP执行SQL导出txt用Notepad++打开出现多余CR LF如何去除
多余CRLF空行产生原因
DB2 CLP在Windows环境下默认输出查询结果时,会在每条数据行末尾额外追加一个换行作为行分隔;叠加Windows命令行重定向机制会自动将输出中的LF换行符转换为Windows标准CRLF格式的逻辑,最终每条数据行后会出现两组CRLF标记,在Notepad++中就表现为数据行之间多出空白行。
对应解决方法
- 导出时直接过滤空行(推荐,无需修改配置)
无需调整DB2全局参数,执行查询时通过管道调用Windows自带的findstr命令过滤所有空行后再写入文件,命令如下:db2 "select * from employee fetch first 5 rows only" | findstr /v /r "^$" > output.txt
该命令执行后生成的文件直接打开即为连续无空行的效果,末尾的5 records.统计信息也会正常保留。 - 已生成文件在Notepad中批量修正
若已经导出了结果文件,可直接在Notepad内做批量替换:- 按
Ctrl+H调出替换窗口 - 查找内容栏输入
\r\n\r\n,替换为栏输入\r\n - 查找模式选择扩展(\n, \r, \t, \0, \x...)
- 点击「全部替换」即可清除所有数据行之间的多余空行,替换后可手动检查最后一条数据与末尾统计行的间距,按需微调即可。
- 按
- 永久修改DB2 CLP默认输出规则
若需要长期导出无空行的查询结果,可在db2cmd中执行以下命令修改默认配置,后续所有查询输出不会自动追加空行:db2 update cli cfg for section common using NewLineAfterRow 0
配置生效后直接运行原重定向导出命令即可得到无空行的结果文件。
内容的提问来源于stack exchange,提问作者MaMu
相关产品推荐
相关产品推荐

