Skip to content

18 调用 pspp-convert ​

pspp-convert 是 PSPP 附带的命令行实用程序。它读取 SPSS 或 SPSS/PC+ 系统文件、SPSS 便携文件或加密的 SPSS 语法文件作为输入,并将副本以不同格式写入另一个输出。概要:

pspp-convert [options] input output

pspp-convert --help

pspp-convert --version

输入的格式在可能时自动检测。旧 SPSS 系统文件的字符编码并非总能正确猜测,而 SPSS/PC+ 系统文件不包含任何编码指示。在这种情况下,使用 -e encoding 指定编码。

默认情况下,输出的目标格式根据其扩展名推断:

csvtxt

逗号分隔值。每个值根据其变量的打印格式格式化。文件的第一行包含变量名。

savsys

SPSS 系统文件。

por

SPSS 便携文件。

sps

SPSS 语法文件。(只有加密的语法文件可以转换为此格式。)

pspp-convert 可以将大多数输入格式转换为大多数输出格式。加密的 SPSS 文件格式是例外:如果输入文件是加密格式,则输出文件将是相同格式(已解密)。要解密此类文件,请将加密文件指定为输入。输出将是等效的纯文本文件。这种情况下输出格式的选项会被忽略。

加密文件的密码可以通过几种不同的方式指定。如果知道密码,请使用 -p 选项(如下所述)或允许 pspp-convert 提示输入。如果不知道密码,请使用 -a 和 -l 选项指定如何搜索它,或使用 --password-list 指定要尝试的密码文件。

使用 -O format 覆盖推断的格式或为无法识别的扩展名指定格式。

pspp-convert 接受以下常规选项:

-O format --output-format=format

设置输出格式,其中 format 是上面列出的扩展名之一,例如:-O csv。使用 --help 列出支持的输出格式。

-c maxcases --cases=maxcases

默认情况下,所有个案都从输入复制到输出。指定此选项可将写入输出的个案数限制为 maxcases。

-e charset --encoding=charset

覆盖解释输入中字符串的编码。此选项是必要的,因为旧 SPSS 系统文件和 SPSS/PC+ 系统文件不会自行标识其编码。

-k variable… --keep=variable…

默认情况下,pspp-convert 包含输入文件中的所有变量。使用此选项列出要包含的特定变量;任何未列出的变量将被丢弃。输出文件中的变量也会重新排序为给定的顺序。变量列表可以像 PSPP 语法中一样使用 TO,例如 如果字典包含连续变量 a、b、c 和 d,则 --keep='a to d' 将包含所有这些变量(不包含其他变量)。

-d variable… --drop=variable…

从输出中丢弃指定的变量。

当 --keep 和 --drop 一起使用时,先处理 --keep。

-h --help

在 stdout 上打印用法消息并退出。

-v --version

在 stdout 上打印版本信息并退出。

以下选项影响 CSV 输出:

--recode

默认情况下,pspp-convert 将用户缺失值作为常规值写入 CSV 输出文件。使用此选项时,pspp-convert 将它们重新编码为系统缺失值(写入为单个空格)。

--no-var-names

默认情况下,pspp-convert 将变量名作为输出的第一行写入。使用此选项时,pspp-convert 省略此行。

--labels

默认情况下,pspp-convert 将变量的值写入 CSV 输出文件。使用此选项时,pspp-convert 写入值标签。

--print-formats

默认情况下,pspp-convert 将数值变量作为纯数字写入。此选项使 pspp-convert 遵循变量的打印格式。

--decimal=decimal

此选项设置输出中用作小数点的字符。默认值为 ‘.’。

--delimiter=delimiter

此选项设置用于分隔输出中字段的字符。默认值为 ‘,’,除非小数点为 ‘,’,此时使用 ‘;’。

--qualifier=qualifier

此选项设置用于引用包含分隔符的字段的字符。默认值为 ‘"’。

以下选项指定如何获取加密文件的密码:

-p password --password=password

指定用于解密加密 SPSS 系统文件或语法文件的密码。如果未指定此选项,pspp-convert 将在必要时交互提示输入密码。

请注意,在多用户系统上,命令行选项(包括密码)可能对其他用户可见。

与 -a(或 --password-alphabet)和 -l(或 --password-length)一起使用时,此选项指定搜索的起点。这可用于重新开始被中断的搜索。

-a alphabet --password-alphabet=alphabet

指定用于搜索加密文件密码的符号字母表。alphabet 可以包含单个字符和以 ‘-’ 分隔的范围。例如,-a a-z 搜索小写字母,-a A-Z0-9 搜索大写字母和数字,-a ' -~' 搜索所有可打印的 ASCII 字符。

-l max-length --password-length=max-length

指定要尝试的密码的最大长度。

--password-list=file

指定要读取的包含密码列表的文件,每行一个密码。如果 file 为 -,则从 stdin 读取。

基于 GNU PSPP 2.0.1 手册与入门教程整理