如何使用awk对.dog模式每N次匹配重复同一数字前缀
实现命令
你可以通过修改原有awk命令的计数逻辑实现,这里支持自定义重复次数n,示例为每5次匹配递增一次序号:
awk -v n=5 '/\.dog/{ ++count num = int((count - 1)/n) + 1 sub(/\.dog/, num "&") } 1' 你的文件路径
逻辑说明
- 通过
-v n=5传入参数,你可以按需调整n的数值来指定同一个序号重复的匹配次数 - 每次匹配到
.dog时先自增全局计数器count - 序号计算逻辑
int((count-1)/n)+1保证每累计n次匹配才会让序号加1:- count值1~5时,计算得到序号为1
- count值6~10时,计算得到序号为2
- count值11~15时,计算得到序号为3
完全符合你给出的预期输出效果。
内容的提问来源于stack exchange,提问作者7beggars_nnnnm
相关产品推荐
相关产品推荐

