在Excel中粘贴SQL行时删除回车符和换行符

时间:2016-09-14 14:56:34

标签: unix sybase aix carriage-return linefeed

嗨,现在我从sybase sql获取一些数据,无论我将哪些数据粘贴到Excel工作表中并发送邮件。问题是所有列和他们的价值观都没有排成一行。我需要它排成一行。

我对此进行了一些研究,发现它正在发生,因为回车和换行。我使用*字段而不是特定列来获取行。

sed "s/\r\n/g" $LOG > temp_log.txt

使用上面的命令但没有用。什么是删除回车的最佳方法。代码示例得到了一些解释。感谢

1 个答案:

答案 0 :(得分:1)

编辑:在第一次评论后,我注意到了原来的问题 问题是由前一步骤引起的。在前面的步骤中,行由isql折叠。修复损坏将非常困难,因为很难预测哪条线应该作为一条记录粘贴在一起 可以通过告诉isql将更多数据放在一行上来解决原始问题:isql -w 2000 如果您只想找出一起加入行,可以使用tr(使用sed进行行操作)。

可以将所有行连接在一起
cat $LOG | tr -d "\r\n" > temp_log.txt

当$ LOG是带空格的某个路径/文件时,上述命令将失败。也许习惯于用小写编写自己的变量,并使用大括号表示变量:

cat "${log}" | tr -d "\r\n" > temp_log.txt

tr正在寻找单个字符,坚果组合它们,所以它也会删除一个\n

如果您想避免cat,请将其改进

tr -d "\r\n" < "${log}" > temp_log.txt

当您知道所有列的总长度是多少时,您可以在fold -w totallength之后尝试tr,但这只有在isql将带有空格(而非制表符)的所有字段填充到总长度。