0

我正在尝试使用纯 SAS 代码解压缩 zip 格式的文件,我可以将其集成为 SAS 脚本的步骤之一。我正在通过云托管版本 (SSOD) 上的网络版 SAS Studio 运行 SAS。

阅读文档,我想出了这个,它试图将 zip 中的所有文件展开到同一个目录:

data _null_;
   infile "unzip /project/input/file.zip" pipe ;
   input ;
   put _infile_;
run;

但是我找不到如何告诉它写入文件的特定目录,也找不到如何从 zip 文件中提取特定文件。

4

1 回答 1

0

运行服务器端管道要求 SAS 服务器在系统选项 XCMD 处于活动状态的情况下运行。您是否在日志中看到错误或其他消息?PROC OPTIONS 的输出是什么?

SAS 代码将按原样记录 unzip 命令写入标准输出的任何内容。

解压缩命令 -d 选项告诉在哪里写入提取的文件。https://linux.die.net/man/1/unzip

手册页解释了如何从 zip 中提取特定项目。

“概要

解压缩 [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] 文件[.zip] [文件...] [-x xfile(s) ...] [-d exdir] "

-p 选项将 zips 文件内容提取到 stdout,然后您的程序将读取该内容。

于 2018-05-12T18:53:56.760 回答