打印awk中的行尾字段导致格式问题



我有一个日志文件,其中包含的输出

/bin/df -h| /usr/bin/grep p_log|/usr/bin/awk -v date="$(date)" '{print date,$4,$5}'

随后使用mailx发送。它到达我的电脑的Outlook与每个条目一行所需,并显示一个行结束在猫-a:

Wed Mar 16 10:29:01 EDT 2022 291G 95%$
Wed Mar 16 11:29:01 EDT 2022 290G 95%$
Wed Mar 16 12:29:02 EDT 2022 290G 95%$

在awk中添加一个额外的字段——$6恰好是df输出中的最后一个字段——仍然显示与cat相同的内容:

Wed Mar 16 11:29:01 EDT 2022 290G 95%$
Wed Mar 16 12:29:02 EDT 2022 290G 95%$
Wed Mar 16 13:29:01 EDT 2022 290G 95% /.p_log$
Wed Mar 16 14:29:02 EDT 2022 290G 95% /.p_log$

但现在在Windows/Outlook:中读取时,行被连接起来

Wed Mar 16 10:29:01 EDT 2022 291G 95%
Wed Mar 16 11:29:01 EDT 2022 290G 95%
Wed Mar 16 12:29:02 EDT 2022 290G 95%
Wed Mar 16 13:29:01 EDT 2022 290G 95% /.p_log Wed Mar 16 14:29:02 EDT 2022 290G 95% /.p_log 

我在上找到了另一个帖子,解释说cat-e(我已经尝试过了,被-A包围(";显示Unix行尾(或LF(为$,显示Windows行尾(\r\n或CRLF(为^M$";。那么,为什么在cat中显示相同控制字符的两行在Windows中显示不同/如何在打印$6时最好地获得行反馈,而不会打乱日志的格式?我认为还有更多隐藏的控制字符,猫-A没有显示,即"所有"实际上并不意味着all

进一步测试:有页眉和页脚行-都以相同的"结尾$"-不会连接的。我尝试将其中一个连接行末尾的内容附加到标题行,这将表明它是"/"这是造成问题的原因,但仅适用于mailx。

看起来我找错树了;不确定我是否应该删除这个问题并为mailx打开一个新问题?

在每行的开头添加两个空格-https://stackoverflow.com/a/22098987/8823709-解决了问题。我不知道为什么,但确实如此。

最新更新