SAS sftp使用LF分隔符而不是CRLF发送文件

SAS sftp使用LF分隔符而不是CRLF发送文件,sas,Sas,我对SAS编程完全陌生,因此如果问题非常基本,请原谅。我正在尝试使用SAS sftp将文件从Linux发送到windows服务器。我可以传输文件,但目标文件有一个行分隔符LF,而我们的作业希望文件有CRLF分隔符。我尝试使用termstr选项,但失败,错误为“无效选项termstr”。下面是我的代码 filename out-file sftp 'file.txt' cd='/project/dir' host='hostname' recfm=v user

我对SAS编程完全陌生,因此如果问题非常基本,请原谅。我正在尝试使用SAS sftp将文件从Linux发送到windows服务器。我可以传输文件,但目标文件有一个行分隔符LF,而我们的作业希望文件有CRLF分隔符。我尝试使用termstr选项,但失败,错误为“无效选项termstr”。下面是我的代码

filename out-file sftp 'file.txt' cd='/project/dir' 
         host='hostname' recfm=v
         user=user1;
data _null_;
   file out-file TERMSTR=crlf;
   do i=1 to i=10;
      put i=;
   end;
run;

TERMSTR
infle
语句的一个选项,而
FILE
语句没有相应的选项

尝试使用带有十六进制字符串的
PUT
,并保持输出(
@

来自SAS文档

(系统)选项值的十六进制值必须以数字(0–9)开头,后跟X。例如,以下OPTIONS语句使用十六进制数将行大小设置为160:

选项linesize=0a0x

十六进制数字的字符指定需要引号:

选项formchar='a0'x

上的附加读数将显示

SAS字符常量可以用十六进制表示法表示。字符十六进制常量是由偶数个十六进制字符组成的字符串,用单引号或双引号括起来,后跟一个X

表示为十六进制值的数值常量以数字(通常为0)开头,后面可以跟更多十六进制字符,最后以字母X结尾。该常量最多可以包含16个有效十六进制字符(0到9,A到F)


您的程序使用的fileref值无效。不能在SAS名称中使用连字符

您可以在FILENAME或FILE语句中使用TERMSTR=选项来更改行尾字符

我认为SFTP总是将文件作为二进制文件移动。您可以尝试更改您的SFTP选项,以确保它正在这样做。尝试删除
recfm=v
选项


注意:文本文件有行尾字符,而不是记录分隔符。如果您正在编写某种类型的专有二进制文件格式,您可能会考虑数据行之间的字符-记录分隔符,但如果您认为文本文件中的行被分隔而不是终止,则会导致混乱。P>不能使用中间有连字符的FielEF。只允许使用1到8个字符的有效SAS名称。
TERMSTR=
选项在
文件
语句中受支持。
PUT I= '0d0a'x @;