写点什么

现年 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:3313431
用户头像
罗燕珊 AI practitioner | Tech media

发布了 523 篇内容, 共 381.7 次阅读, 收获喜欢 842 次。

关注

评论 2 条评论

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

Java架构师JVM启动流程和内存结构,程序员必看!

老大哥

Java 程序员 后端

从用户输入手机验证码开始

架构师修行之路

用技术的“信条”,开启AI to B的产业位移

脑极体

「查缺补漏」巩固你的RocketMQ知识体系

Kerwin

Java RocketMQ

【真实面试经历】我和阿里面试官的一次“邂逅”

老大哥

我的大厂面试经历

老大哥

Java 程序员 后端

关于二进制的补码,反码,正负数表示以及Java代码测试

Zexho

Java 补码 位运算 反码 计算机知识

架构师训练营第13周作业

Hessian Bug修复

心平气和

php 序列化 hessian

架构师训练营作业(大数据与机器学习)

qihuajun

面试官为什么会问你,如何设计一个高并发系统?

老大哥

Java 程序员 后端

Java服务,内存OOM问题如何快速定位?

老大哥

Java 程序员 后端

没想到 Hash 冲突还能这么玩,你的服务中招了吗?

老大哥

Java 程序员 后端

Spring 5 中文解析核心篇-集成测试之TestContext(上)

青年IT男

单元测试 Spring5 JUnit

阿里P8忠告:这些技术,哪怕不用微服务架构,你也应该会

小Q

Docker 架构 微服务 springboot SpringCloud

第十三周作业

olderwei

极客大学架构师训练营

架构师第十三周作业

傻傻的帅

架构师

第13周 作业

Jaye

架构师训练营第 0 期第 13 周作业

无名氏

甲方日常10

句子

工作 随笔杂谈 日常

架构师训练营 - 第 8周命题作业

红了哟

服务化反面案例

心平气和

服务化 权限

“新基建”与“双循环”的二重奏:2020服贸会靠什么推动经济复苏

脑极体

What's new in Dubbo-go v1.5.1

apache/dubbo-go

dubbo 服务端 Go 语言

商业通识 : 商业从哪里来?

Walker

学习 得到 个人成长 商业

Flink通过官网创建自己的工程-20

小知识点

scala 大数据 flink

大厂面试题:集群部署时的分布式 session 如何实现? 面试官心理分析

老大哥

Java 程序员 后端

架构师训练营第十三周作业

张明森

模板方法模式——看看 JDK 和 Spring 是如何优雅复用代码的

简爱W

Java 程序员 java架构

市值做市机器人,操盘做市系统搭建

工作好多年有可能还未真正了解接口和抽象类

架构师修行之路

接口 抽象

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