脚本杂谈:transpose、m1 宏处理器与 sed 快速参考
1. transpose 脚本
transpose 是一个简单却有趣的脚本,以下是它的测试示例:
$ transpose test 1 5 9 2 6 10 3 7 11 4 8 12其程序逻辑是创建一个名为row的数组,将每个字段追加到数组元素中,最后通过END过程输出该数组。
2. m1 简单宏处理器
m1 程序是 UNIX 系统中 m4 宏处理器的“小兄弟”,最初发表于 1990 年 6 月《Computer Language》第 7 卷第 6 期的文章“m1: A Mini Macro Processor”。宏处理器的主要任务包括:
1.定义和展开宏:宏由名称和主体两部分组成,宏名称的所有出现都会被其主体替换。
2.包含文件:数据文件中的特殊包含指令会被替换为指定文件的内容,包含操作通常可以嵌套。
3.条件文本包含和排除:根据宏是否定义,文本的不同部分可以包含在最终输出中。
4.注释处理:根据宏处理器的不同,注释行可以从最终输出中移除。
m4 是一个强大的通用宏处理器,但较难掌握,因为宏定义在定义时就进行展开处理,而不是在展开时处理。m1 比 m4 简单得多,更易于学习和使用。