为什么不以正常方式输出分隔文件?您必须做一些愚蠢的事情来获取前导/尾随字符(我很好奇它们为什么存在),但这可能比手动分隔文件更简单。
data _null_;
set datain_20130108;
file 'C:\data\dataout_20130108.dlm' dlm='|';
idtemp= cats("!", id);
vartemp=cats(var6,'~');
put id $ var1 var2 var3 var4 var5 var6 $;
run;
REPLACE 可能来自一些使用 PROC EXPORT 的指令。如果 PROC EXPORT 上没有 REPLACE,它不会覆盖文件。SAS 数据步骤将替换文件而不需要该选项。
proc export data=datain_20130108 file='C:\data\dataout_20130108.dlm' dbms=dlm replace;
delimiter='|';
run;
但是,这不会在开头和结尾为您提供额外的字符,我强烈建议不要将 PROC EXPORT 用于分隔文件,除非它只是一次性的 - 它会为您做出各种决定,您最好做出自己(格式化等),实际上并不比 PUT 版本容易得多。