2013-08-27 2 views
0

"zip"파일을 같은 스크립트로 프로그래밍하여 SAS 스크립트에서 출력하는 파일을 "압축"할 수있는 SAS 서버 사용자가 있습니다.XCMD를 활성화하지 않고 SAS 스크립트에서 from을 압축하는 방법이 있습니까?

SAS가 실행되는 Linux 서버에서 기본적으로 XCMD를 사용하도록 설정하는 것을 주저합니다. 누구든지 XCMD를 사용하지 않고이 작업을 수행 할 수있는 대체 방법을 알고 있습니까?

답변

0

그들이하는 일에 따라 다릅니다.

.sas7bdat (SAS 데이터 세트)를 생성하는 경우 options compress=yes; (또는 =char)은 SAS 데이터 세트 일부를 압축합니다. 거의 정상적인 gzip 압축만큼 압축하지는 않습니다.

텍스트 파일을 작성하는 경우 zip 파일을 작성하는 방법이 있습니다. 9.4에서는 이것이 생산입니다. 자세한 내용은 this doc page을 참조하십시오. 기본적으로 다음과 같이 작성할 수 있습니다.

filename myfile zip '//mydir/myfile.z'; 

그런 다음 일반 파일처럼 작성하십시오. 텍스트 파일로 읽은 다음 다른 파일을 다른 파일 (예 : HTML)에 쓸 수도 있습니다 (예 : HTML). 그러나 신품이므로 현재로서는이 정보를 사용할 수있는 정보가별로 없습니다.

9.4 이전에는 공식적으로 지원되지 않으며 프로덕션 용도로 적합하지 않은 SASZIPAM 파일 이름 엔진이있었습니다. 비슷하게 사용할 수도 있습니다.

PDF 또는 유사한 파일을 작성하는 경우 recfmt = n으로 pdf를 읽고 zip 파일로 다시 작성하여 zip 파일 이름 엔진을 사용할 수있는 경우가 아니면 적절한 방법이 없을 것입니다 그런 식으로; 그래도 아주 위험 해 보입니다.

XCMD를 사용하기가 불편할 경우 가장 좋은 해결책은 SAS가 zip 명령어가 포함 된 배치 파일 (가정용 Linux의 .sh 파일)을 작성하고 프로세스가 있어야합니다. SAS가 실행되면 .sh 파일이 완료되면이를 실행합니다.

0

출력이 ODS 대상으로 연결되면 ODS 패키지를 만들고 모든 출력을 zip 파일에 포함 할 수 있습니다.

ods package open; 
ods html package; 
proc print data=sashelp.class; 
run; 
ods html close; 
ods package publish archive properties(archive_name="class.zip" archive_path="\"); 
ods package close; 
0

UNIX 설치가 없으므로 -NOXCMD로 테스트 할 수 없습니다.

유닉스에서 다른 유닉스 프로세스처럼 SAS를 사용하여 pipe을 쓸 수 있습니다.

관련 문제