news 2026/6/24 9:38:12

30、脚本杂谈:m1 宏处理器与 sed 命令速览

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
30、脚本杂谈:m1 宏处理器与 sed 命令速览

脚本杂谈:m1 宏处理器与 sed 命令速览

1. 转置脚本示例

首先来看一个简单的转置脚本示例:

$ transpose test 1 5 9 2 6 10 3 7 11 4 8 12

这个脚本创建了一个名为row的数组,并将每个字段追加到数组元素中,最后通过END过程输出数组。

2. m1 宏处理器简介

m1 程序是 UNIX 系统中 m4 宏处理器的“小兄弟”。宏处理器的主要任务包括:
- 定义和展开宏:宏由名称和主体两部分组成,宏名称的所有出现都会被其主体替换。
- 包含文件:数据文件中的特殊包含指令会被替换为指定文件的内容,包含操作通常可以嵌套。
- 条件文本包含和排除:根据宏是否定义,决定文本的不同部分是否包含在最终输出中。
- 注释处理:某些宏处理器会从最终输出中移除注释行。

与 m4 相比,m1 更简单,更易于学习和使用。m4 在宏定义时就进行扩展处理,而 m1 在扩展时处理,降低了学习难度。

3. m0a 版本:简单的宏定义与扩展

以下是 m0a 版本的代码:

/^@define[ \t]/ { name = $2 $1 = $2 = ""; sub(/^[ \t]+/, "") symtab[name] = $0 next } { for (i in symtab) gsub("@" i
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 2:07:17

将LobeChat与VSCode插件结合提升开发效率方法

将LobeChat与VSCode插件结合提升开发效率方法 在今天这个AI加速渗透软件工程的年代,开发者每天面对的早已不只是“写代码”这一单一任务。从理解复杂的遗留系统,到快速生成测试用例;从解释一段晦涩的算法逻辑,到将自然语言需求转化…

作者头像 李华
网站建设 2026/6/24 23:43:52

UltraVNC远程控制完全指南:从零开始快速上手

UltraVNC远程控制完全指南:从零开始快速上手 【免费下载链接】UltraVNC UltraVNC Server, UltraVNC Viewer and UltraVNC SC | Official repository: https://github.com/ultravnc/UltraVNC 项目地址: https://gitcode.com/gh_mirrors/ul/UltraVNC UltraVNC是…

作者头像 李华
网站建设 2026/6/22 15:16:43

gemma.cpp模型转换终极指南:打破Python到C++的部署壁垒

gemma.cpp模型转换终极指南:打破Python到C的部署壁垒 【免费下载链接】gemma.cpp 适用于 Google Gemma 模型的轻量级独立 C 推理引擎。 项目地址: https://gitcode.com/GitHub_Trending/ge/gemma.cpp 在AI模型部署的实践中,你是否经常面临这样的困…

作者头像 李华
网站建设 2026/6/23 22:09:44

零基础掌握HTML5 Canvas游戏开发:智能中国象棋实战指南

零基础掌握HTML5 Canvas游戏开发:智能中国象棋实战指南 【免费下载链接】Chess 中国象棋 - in html5 项目地址: https://gitcode.com/gh_mirrors/che/Chess 想要从前端新手蜕变为游戏开发高手吗?这个基于HTML5 Canvas的中国象棋项目正是你需要的完…

作者头像 李华
网站建设 2026/6/23 21:12:43

ndb调试神器:5分钟搞定Node.js多线程调试终极指南

ndb调试神器:5分钟搞定Node.js多线程调试终极指南 【免费下载链接】ndb ndb is an improved debugging experience for Node.js, enabled by Chrome DevTools 项目地址: https://gitcode.com/gh_mirrors/nd/ndb 你是否还在为Node.js多线程调试而头疼&#xf…

作者头像 李华