Я совершенно новичок в программировании SAS, поэтому извините, если вопрос очень простой. Я пытаюсь отправить файл с помощью SAS sftp из Linux на сервер Windows. Я могу передать файл, но в конечном файле есть разделитель строк LF, тогда как наша работа ожидает, что файл будет иметь разделитель CRLF. Я попытался использовать параметр termstr, но он не прошел с ошибкой «invalid option 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;
sas
2
Sundararaman P 5 Ноя 2018 в 13:54

2 ответа

Лучший ответ

Ваша программа использует недопустимое значение для fileref. В имени SAS нельзя использовать дефис.

Вы можете использовать параметр TERMSTR = в операторе FILENAME или FILE, чтобы изменить символы конца строки .

Я думал, что SFTP всегда перемещал файлы как двоичные. Вы можете попробовать изменить параметр SFTP, чтобы убедиться, что он это делает. Попробуйте удалить опцию recfm=v.

Примечание. Текстовые файлы содержат символы конца строки, а не разделители записей. Если вы пишете какой-то проприетарный формат двоичного файла, вы можете рассматривать символы между строками данных как разделитель записи, но это приведет к путанице, если вы думаете, что строки в текстовых файлах разделены, а не завершены.

2
Tom 5 Ноя 2018 в 15:43