newform [-s] [-itabspec] [-otabspec] [-bn] [-en] [-pn] [-an] [-f] [-cchar] [-ln] [filename]...
newform 读取指定的 filename 或标准输入(如果未指定输入文件)中的行,并在标准输出中复制这些行。将根据有效的命令行选项重新设置行的格式。
除 –s 之外的其他命令行选项可以按任何顺序出现,可以重复,并且可以与可选的 filename 组合使用。命令行选项按指定的顺序进行处理。也就是说,–e15 –l60 这样的选项序列会产生不同于 –l60 –e15 的结果。选项将应用于命令行上的所有 filename。
支持以下选项:
剪切每个行中第一个制表符之前的前导字符,然后将最多 8 个剪切的字符放在行的末尾。如果剪切的字符超过 8 个(不计第一个制表符),则将第八个字符替换为 *,丢弃其右侧的所有字符。始终丢弃第一个制表符。
如果对所有行中都没有制表符的文件使用此选项,将出现错误消息并退出程序。剪切的字符将在内部保存,直到指定的其他所有选项都应用到该行为止。然后,将字符添加到处理后的该行末尾。
例如,要将一个所有行都包含前导数字、一个或多个制表符以及文本的文件转换为以文本开头的文件,第一个制表符后的所有制表符都展开为空格,用空格填充到第 72 列(或者截断到第 72 列),并且开头的前导数字放在第 73 列,则应该使用以下命令:
newform –s –i –l –a –e filename
输入制表符规范:根据指定的制表符规范,将制表符展开为空格。Tabspec 可识别 tabs(1) 中描述的所有制表符规范格式。此外,tabspec 可以是 –,在这种情况下 newform 假定制表符规范位于从标准输入读取的第一行中(请参见 fspec(4))。如果未指定 tabspec,则 tabspec 缺省为 −8。tabspec 为 −0 时不应有制表符;如果存在制表符,则将其处理为 −1。
输出制表符规范:根据指定的制表符规范,将空格替换为制表符。制表符规范与 –itabspec 的相同。如果未指定 tabspec,则 tabspec 缺省为 −8。tabspec 为 −0 意味着不在输出中将空格转换为制表符。
在行长度大于有效行长度(请参见 −ln)时,从行开头开始截断 n 个字符。缺省设置为截断获得有效行长度所需的字符数。如果使用 –b 时不带 n,则使用缺省值。此选项可用于从 COBOL 程序中删除序列号,如下所示:
newform –l1 –b7 filename
与 –bn 相同,但从行末开始截断字符。
在行长度小于有效行长度时,在行开头加上 n 个字符(请参见 –cchar)。缺省设置为在前面附加获得有效的行长度所需的字符数。
与 –pn 相同,但将字符附加到行末。
在输出其他任何行之前,在标准输出中写入制表符规范格式行。输出的制表符规范格式行将对应于在 last –o 选项中所指定的格式。如果未指定 –o 选项,则输出的行将包含缺省规范 −8。
将前缀/附加字符更改为 char。char 的缺省字符为空格。
将有效行长度设置为 n 个字符。如果未输入 n,–l 缺省使用 72。如果没有 –l 选项,缺省行长度为 80 个字符。注意:制表符和退格被视为一个字符(使用 –i 可将制表符扩展为空格)。
必须使用 −l1 来设置短于文件中任何现有行的有效行长度,才能激活 –b 选项。
支持下列操作数:
输入文件
将返回以下退出值:
操作成功。
操作失败。
有关下列属性的说明,请参见 attributes(5):
|
csplit(1)、tabs(1)、fspec(4)、attributes(5)
所有诊断消息都是致命的。
调用 newform 时使用了错误的选项。
某个行中没有制表符。
不需要加以说明。
在内部工作缓冲区中展开后,某个行的长度超过了 512 个字符。
某个制表符规范的格式设置不正确,或者指定的制表停止位置不是升序的。
从文件(或标准输入)读取的 tabspec 可能未包括引用其他文件(或标准输入)的 tabspec。
正常情况下,newform 仅记录实有字符;但是,对于 –i 和 –o 选项,newform 将记录退格以便在相应的逻辑列中排列制表符。
newform 不会提示用户是否要从标准输入读取 tabspec(通过使用 –i– 或 – o–)。
如果使用了 –f 选项,并且指定的最后一个 –o 选项是 –o–,并且前面有 –o– 或 –i–,则制表符规范格式行将不正确。