用sed脚本高效制作书籍索引

Using sed to make indexes for books (long)

我在出版行业工作时,曾需要为排版后的书籍制作索引。我们先用黄色标记高亮关键词,再由志愿者录入术语和页码,生成初始数据文件。接着使用sort工具进行排序,确保大小写不敏感且数字顺序正确。最初我用awk脚本处理数据转换,后来发现sed脚本更简洁高效。但sed脚本对输入格式要求严格,若某行缺少分号,后续所有行都会出错。我通过添加错误检查机制,在脚本开头验证每行是否包含分号,若发现错误则立即终止并提示行号。这一经历让我深刻体会到,即使是简单的文本处理工具,也需严谨设计以应对实际数据中的异常。

如果输入文件中某一行缺少分号,整个脚本的后续处理都会出错。
  1. tomhow

    此前相关讨论:

    使用 sed 制作书籍索引(1997)- https://news.ycombinator.com/item?id=16080505 - 2018 年 1 月(17 条评论)

  2. janandonly

    两点想法:

    1. 我觉得 AWK、SED、GREP 和 Bash(举几个例子)的使用正在普遍衰退。除了在 HN 帖子里,我很少见到它们。真希望自己能更擅长使用这些工具。有时为了满足特殊需求,我会让 LLM 帮我写一段 bash 脚本,就为了延续这种精神。

    2. 另一方面,我写过一本书,用 Microsoft Word 添加了索引,基本上挺容易的。我不明白为什么非要回到那种依赖复杂命令行工具的世界,去做一件本该很简单的事情?

同日更多故事

2026-07-26