写点什么

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

发布了 500 篇内容, 共 337.5 次阅读, 收获喜欢 799 次。

关注

评论 2 条评论

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

陌陌技术分享:陌陌IM在后端KV缓存架构上的技术实践

JackJiang

即时通讯;IM;网络编程

美股交易系统搭建

GangguHK

如何在数据库中存储小数:FLOAT、DECIMAL还是BIGINT?

EquatorCoco

数据库 oracle

商品智能化 如何节约真金白银?

第七在线

基于仿真的飞机ICD工具测试

DevOps和数字孪生

航空航天 飞机 ICD

Pytest参数化用例(单参数,多参数,用例重命名,笛卡尔积)

测试人

软件测试 测试开发 pytest

人工智能大模型原理与应用实战:自动驾驶技术的飞跃

百度开发者中心

人工智能 自动驾驶 大模型

深入了解美国数据库服务器的特点与使用方法,助你更高效地管理网站数据

一只扑棱蛾子

美国服务器 美国数据库服务器 数据库服务器

武汉LUG报名开启!这次我们来到了华中科技大学,3月23日(周六)来见面吧!

nn-30

云审计与大数据审计:区别、优势与应用场景

天翼云开发者社区

云计算 大数据 数据处理 云审计 大数据审计

SD-WAN——企业云网融合的优选

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 SDWAN

火山引擎VeDI:A/B实验如何应用在APP推荐系统中?

Geek_2d6073

兼容互认证+1!TDengine 与 Tapdata Live Data Platform 成功通过测试

TDengine

tdengine 时序数据库

【论文速读】| MOCK:上下文依赖引导的内核模糊测试

云起无垠

让LED显示屏更加节能,刻不容缓!

Dylan

环境 性能损耗 LED显示屏 全彩LED显示屏 led显示屏厂家

MYSQL 主从不一致的原因分析

不在线第一只蜗牛

MySQL 数据库

面试官:你还有什么想问我的?

老张

面试 面试经验

在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!

快乐非自愿限量之名

Java 编程 开发

获取1688商品详情API:步骤与代码示例

Noah

线上机器 swap 过高导致告警

不在线第一只蜗牛

开发 swap

实例带你了解GaussDB的索引管理

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

面试官:说说反射的底层实现原理?

王磊

Java 面试

云监控告警2.0:革新传统告警机制,引领智能化监控新时代

天翼云开发者社区

云计算 云监控 告警系统

语言大模型的浮点运算分配优化策略

百度开发者中心

人工智能 机器翻译 语音识别 大语言模型

欢迎来到 Mint Forest:Mint Your Tree,兑换你的 $MINT!

NFT Research

blockchain web3、

知识|基于混合模式的多余度飞控全数字仿真系统研究

DevOps和数字孪生

航空航天 飞控全数字仿真系统

阿里巴巴中国站获得1688商品详情 API(1688.item_get)快速抓取电商数据

技术冰糖葫芦

API API 测试

MySQL的varchar水真的太深了——InnoDB记录存储结构

砖业洋__

varchar innodb行格式 dynamic行格式 varchar最大16383

SaaS应用加速:提高企业办公效率,解决业务挑战

Ogcloud

SaaS 网络加速 SaaS应用 SaaS应用加速

SAE自动驾驶分级介绍

EquatorCoco

人工智能 自动驾驶 机器学习

万界星空科技生产管理MES系统在卫浴企业中的应用

万界星空科技

制造业 生产管理系统 mes 万界星空科技 卫浴工厂

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