Unix输出的换行符没有出现在记事本中

时间:2014-06-06 13:58:43

标签: unix sas newline

好的,我是SAS的新手,并且一直在处理固定格式化的输出.txt文件。每个变量都需要从特定列开始,并且是固定长度和格式。我一直在使用PUT声明来实现这一目标。到现在为止还挺好。

我遇到的问题是当我在记事本中打开output.txt时,第一行遵循put语句中定义的规则,直到下移到下一行为止。数据继续写在第一条记录上,而不是在put语句结束时创建新记录。

仅当我在Windows环境(记事本)中打开文件时才会出现这种情况。当我在UNIX编辑器中查看它时,一切都是我需要它的方式。

    data _null_;
    set work.get_driver_data;
    file ".......................dw2092340/driverdata.txt" LRECL = 269;
    DV_Term1 = compress(put (DV_Term, mmddyyn8.),'.');

   put @001 SCAC $4. 
   @005 DV_REF $10. 
   @15 DSP_OFFICE $13. 
   @28 UP_RMP $5.
   @33 DV_HIRE mmddyyn8. 
   @41 DV_TERM1 $8. @49 FIRSTNAME $20. 
   @69 MID $10. @79 LASTNAME $20.
   @99 LICENSE $20. 
   @119 LIC_STATE $2. 
   @121 LIC_CNTRY $3. 
   @124 LIC_EXPIRE mmddyyn8.
   @132 LIC_CDL $1.
   @257 BNSF_PIN $10.;

感谢任何帮助

1 个答案:

答案 0 :(得分:2)

你的目标是什么?听起来像你正在创建一个带有UNIX样式行结尾的文本文件。

如果要在记事本中打开它,则需要为其指定窗口样式行结尾。在文件语句的末尾试试这个:

termstr=crlf

这代表“回车换行”。替代值包括:

LF(换行) - 使用TERMSTR=LF写入适合unix系统的文件。

CR(回车) - 对mac系统使用TERMSTR=CR(不是常见的用例)。

如果你只是想看看你的结果,也许你应该考虑使用一个功能齐全的文本编辑器 - 有许多免费的可用的文件将打开所有这些格式的文件。我使用Notepad ++,但还有很多其他的。

另外,请查看unixwindows下的文件名说明文档。