写点什么

现年 80 岁的 Unix 大神还在修复 AWK 代码

  • 2022-08-24
    北京
  • 本文字数:888 字

    阅读完需:约 3 分钟

现年80岁的Unix大神还在修复AWK代码

AWK是一种用于分析文本文件的编程语言,是 Unix 操作系统的核心部分,包括 Linux、所有 BSD 和其他系统。而对于被认为符合 POSIX 标准的操作系统,它必须包含 AWK。AWK 首次出现在 1977 年,并在 1979 年被放进第 7 版 UNIX 中——这是贝尔实验室的最后一版 UNIX,后面 AT&T 就把它变成了商业产品。


如今,这款工具终于能支持 Unicode,但在这件事上,更引起大家注意的是工具背后的传奇人物,加拿大计算机科学家Brian Kernighan。AWK 里面的“K”指代的便是他的名字。


Brian Kernighan 曾就职于贝尔实验室,目前为普林斯顿大学教授,参与 Unix 的研发,也是 AMPL 与 AWK 的共同创造者之一,他和 Dennis Ritchie 共同写作了 C 语言的第一本著作《C 程序设计语言》,在这之后,他的名字开始为人所熟知。Kernighan 教授也是“K&R C”中的“K”。


虽然 AWK 有不同版本,但这是原始版本,被称为“One True AWK”(有时被称为 nawk)。今年 5 月下旬,Kernighan 教授给一位老朋友发了邮件,他在里面提到自己还在琢磨为 AWK 添加 Unicode 支持,并分享了进展(现在已能使用,除了测试不足),他还谦虚地说:


一旦我弄清楚了如何(并做更多检查,我将尝试提交拉取请求。我希望我能更好地理解 git。尽管有你的帮助,我仍没有做到正确理解,所以这可能还需要一段时间。


关于 Unicode 支持的代码变更实际上是在几个月前就发生,但由于刚刚发布的关于 Kernighan 教授的采访,这件事才被更广泛的圈子注意到。


“AWK 只适用于 ASCII 或 8 位输入,但它根本不能真正处理 Unicode,这一直是一个尴尬,”Kernighan 教授在视频中告诉采访主持 David Brailsford 教授。“几个月前,我花了一些时间使用(笑)一个非常古老的程序。我现在拥有它,它实际上可以处理 UTF-8 输入和输出,这样你就可以有正则表达式,你知道,选择日文字符之类的。”


右边为 Brian Kernighan


如今已经 80 岁的 Kernighan 教授在采访中不经意地提到,他还修补了一些问题,比如让 AWK 处理 CSV 文件。


参考链接:

https://arstechnica.com/gadgets/2022/08/unix-legend-who-owes-us-nothing-keeps-fixing-foundational-awk-code/

https://www.theregister.com/2022/08/23/universal_unix_tool_awk_gets/?td=rt-3a

2022-08-24 18:3313104
用户头像
罗燕珊 AI practitioner | Tech media

发布了 505 篇内容, 共 349.8 次阅读, 收获喜欢 812 次。

关注

评论 2 条评论

发布
用户头像
👍
2022-08-28 16:06 · 浙江
回复
用户头像
烈士暮年壮心不已
2022-08-25 08:23 · 浙江
回复
没有更多了
发现更多内容

赴一场开源盛会丨10月29日 COSCon'22 开源年会杭州分会场,这里只差一个「你」!

袋鼠云数栈

EMQ助力构建工业生产数字孪生基础架构|智慧工厂系列专题03

EMQ映云科技

物联网 IoT 工业互联网 数字孪生 10月月更

强烈推荐!商业洞察就用这个工具

产品海豚湾

产品经理 产品设计 产品运营 商业化 10月月更

SpringMVC之拦截器

Andy

企业业务沟通新选择,华为云会议支持全场景智能协作

秃头也爱科技

MyBatis之缓存机制和动态SQL

Andy

开源大数据集成框架ChunJun在数据还原上的探索和实践

袋鼠云数栈

袋鼠云平台代码规范化编译部署的提效性改进实践

袋鼠云数栈

安全架构师的运营一二事

I

运营 安全架构 企业安全 安全运营

Java | 数组工具类Arrays、数学工具类Math

陌上

编程 Java、 10月月更

SpringMVC 基础

Andy

SpringBoot之错误处理

Andy

Gtags解决UnicodeEncodeError问题

Geek_pwdeic

一文读懂:开源大数据调度系统Taier1.2版本新增的「工作流」到底是什么?

袋鼠云数栈

SpringMVC之文件上传

Andy

深耕稳定安全会议服务,华为云会议具备会议全球接入能力

秃头也爱科技

华为云连接CC,解决企业跨地区发展的网络难题

路过的憨憨

华为

SpringBoot之开发深入

Andy

Java | 面向对象(二)

陌上

编程 Java、 10月月更

华为云桌面——云端上“最卷的云”

秃头也爱科技

Java | 继承

陌上

Java 编程 10月月更

MyBatis初步理解

Andy

激活数据价值,探究DataOps下的数据架构及其实践丨DTVision开发治理篇

袋鼠云数栈

开源直播课丨大数据集成框架ChunJun类加载器隔离方案探索及实践

袋鼠云数栈

标签评分:海量标签如何进行系统治理?

袋鼠云数栈

投资成本低且无需专人维护!华为云会议让沟通更高效

秃头也爱科技

SpringBoot之基础知识

Andy

MyBatis程序基础实现

Andy

MyBatis面试题(部分)

Andy

MySQL向表中添加列

okokabcd

MySQL

深入浅出Python——Python高级语法之面向对象

何极光

Python 面向对象 10月月更

现年80岁的Unix大神还在修复AWK代码_语言 & 开发_罗燕珊_InfoQ精选文章