macOS环境下如何用Shell脚本给文本每3行前插入递增索引
解决方案
以下方案完全适配macOS原生命令行工具,无需额外安装GNU版本的awk/sed。
方案1:输出修改后内容(不改动原文件)
优先推荐awk实现,逻辑简单直观:
awk 'NR % 3 == 1 {print i++ ":"} 1' 你的文本文件路径
说明:
- 按每3行一组匹配,
NR%3==1对应每组的第一行,如果你实际的组长度不是3,修改数字3即可 - 匹配到组首行时,先打印从0开始递增的索引+冒号
- 末尾的
1是awk默认打印所有原始行的固定写法
方案2:直接修改原文件
macOS原生awk没有内置原地修改参数,用临时文件中转的方式兼容性最好:
awk 'NR % 3 == 1 {print i++ ":"} 1' 你的文本文件路径 > tmp_swap_file && mv tmp_swap_file 你的文本文件路径
内容的提问来源于stack exchange,提问作者AnonSar
相关产品推荐
相关产品推荐

