newform 命令
用途
更改文本文件的格式。
语法
newform [ -s ] [ -f ] [ -a [ Number ]] [ -b [ Number ]] [ -c [ Character ]] [ -e [ Number ]] [ -i [ TabSpec ]] [ -l [ Number ]] [ -o [ TabSpec ]] [ -p [ Number ]] [ File ...]
描述
newform 命令从由 File 参数(缺省情况下为标准输入)指定的文件中读取多行,随后将格式化后的行写到标准输出。 根据有效的命令行标志,行需要重新格式化。
除了 -s 标志,您可以以任何顺序输入命令行标志,可以重复,也可以和 File 参数混合使用。 但是,系统按您指定的顺序处理命令行标志。 例如,-c 标志修改 -a 和 -p 标志的行为,所以试图更改 -p 或 -a 标志之前指定 -c 标志。 -l(小写字母 l)标志修改 -a、-b、-e 和 -p 标志的行为,所以试图更改这些标志之前指定 -l 标志。 例如,像标志序列 -e 15 -l 60 产生的结果和标志序列 -l 60 -e 15 产生的结果就不一样。 标志可以应用到命令行所指定的所有文件中。
退出值为 0 表示正常执行;退出值为 1 表示出现错误。
- newform 命令通常只跟踪物理字符; 但是,对于 -i 和 -o 标志, newform 命令会跟踪退格以在相应的逻辑列中排列选项卡。
- 如果系统从标准输入读取 TabSpec 变量值 (通过使用 -i- 或 -o- 标志) ,那么 newform 命令不会提示您。
- 如果您指定了 -f 标志,并且您指定的最后一个 -o 标志是 -o- , 并且前面是 -o - 或 -i- ,那么制表符规范格式行不正确。
- 如果为 -p、 -l、 -e、 -a 或 -b 标志指定的值不是大于 1 的有效十进制数,则指定值将被忽略,并采取默认操作。
标志
| 项 | 描述 |
|---|---|
| - a [ 数字 ] | 当行的长度小于有效的行长度时,将指定的字符数添加到行尾。 如果没有指定数值,那么 -a 标志缺省为 0,并且添加获得有效的行长度所必需的字符数。 另请参阅 -c [ Character ] 和 -p [ Number ] 标志。 |
| - b [ 数字 ] | 如果行的长度大于有效的行长度,那么从行的开头截掉指定的字符数。 如果该行包含少于
Number 参数指定值的字符数,那么整个行将被删除并在此处显示一个空白行。 同时请参考 -I [
Number ] 标志。 如果指定了 -b 标志但未指明 Number 变量,缺省操作将截掉获得有效的行长度所必需的字符数。 该标志能够用来从 COBOL 程序中删除序列号,如下所示: -l1 标志必须用来设置有效的行长度,这个长度比文件中任何现有的行都要短,这样才能激活 -b 标志。 |
| -c [ 字符 ] | 将 prefix/add 字符更改为由 Character 变量指定的字符。 如果在 -a 和 -p 标志之前指定,缺省字符是空格并且可用。 |
| - e [ 编号 ] | 从行尾截掉指定的字符数。 否则,该标志和 -b [ Number ] 标志相同。 |
| -f | 在写任何其他行之前,将制表符规范格式行写到标准输出。 显示的制表符规范格式行对应于最终 -o 标志指定的格式。 如果没有 -o 标志被指定,那么显示的行会包含 -8 的缺省规范。 |
| - i [ TabSpec ] | 用由 TabSpec 变量指定的空格数替换输入中所有的制表符。 该变量能够标识所有的在 tabs 命令中描述的制表符规范格式。 如果为 TabSpec 变量的值指定 - (减号) ,那么 newform 命令假定可以在从标准输入读取的第一行中找到选项卡规范。 TabSpec 的缺省值为 -8。 TabSpec 值为 -0 时不需要制表符。 如果找到任何制表符,那么认为其值为 -1。 |
| - l [ 编号 ] | 将有效的行长度设置为指定的字符数。 如果 Number 变量没有被指定,那么 -l 标志缺省值为 72。 没有 -l 标志的缺省行长度是 80 个字符。 请注意,制表符和退格被视为一个字符 (使用 -i 标志将制表符扩展到空格)。 您必须在指定 -b 和 -e 之前指定 -l 标志。 |
| - o [ TabSpec ] | 根据给定的制表符规范,在输出中用制表符替换输入中的空格。 TabSpec 的缺省值为 -8。 TabSpec 的值为 -0 时意味着在输出中没有空格可以转换为制表符。 |
| -p [ 数字 ] | 当行的长度小于有效的行长度时,在该行的开头附加指定的字符数。 缺省操作是附加获得有效行长度所必需的字符数。 同时请参考 -c 标志。 |
| -s | 删除每行的前导字符直到出现第一个制表符,并且将被删除的最多 8 个字符放置在行尾。 如果多于 8 个字符被删除(不包含第一个制表符),那么第 8 个字符被 * (星号) 替换,并且它右边的所有字符被废弃。 第一个制表符总是被废弃。 删除的字符在内部被保存,直到所有其他的指定标志应用于该行。 然后将这些字符添加到被处理行的尾部。 |
示例
要按以下内容从一个文件转换:
- 前导数字
- 一个或多个选项卡
- 每行上的文本
到另一个文件:
- 从文本开始,第一个选项卡之后的所有选项卡都展开为空格
- 使用空格添加到第 72 列 (或截断到第 72 列)
- 从第 73 列开始放置的前导数字
输入以下内容:
newform -s -i -l -a -e filename如果将 -s 标志用于每一行都没有制表符的文件中,那么 newform 命令会显示以下错误消息并停止。
newform: 0653-457 The file is not in a format supported by the -s flag.