gpt4 book ai didi

emacs - 如何在配置文件的同一行上增加一系列数字?

转载 作者:行者123 更新时间:2023-12-04 16:19:26 25 4
gpt4 key购买 nike

假设我有一个配置文件,每一行都包含空格分隔的值。在列上我只有零。例子:

... # there is more configuration before the interesting stuff:
0 0 file /dev/stdin 224.0.68.54:12131
0 0 file /dev/stdin 224.0.68.55:12102
0 0 file /dev/stdin 224.0.68.49:12333
0 0 file /dev/stdin 224.0.68.60:12184
0 0 file /dev/stdin 224.0.68.62:12888
0 0 file /dev/stdin 224.0.68.77:12001
0 0 file /dev/stdin 224.0.68.33:12973

现在我想用它的索引增加第二列。
那就是我想要这个结果:
0 0 file /dev/stdin 224.0.68.54:12131
0 1 file /dev/stdin 224.0.68.55:12102
0 2 file /dev/stdin 224.0.68.49:12333
0 3 file /dev/stdin 224.0.68.60:12184
0 4 file /dev/stdin 224.0.68.62:12888
0 5 file /dev/stdin 224.0.68.77:12001
0 6 file /dev/stdin 224.0.68.33:12973

如何在 emacs lisp 中做到这一点?或者任何其他 Emacsen 做事方式?

最佳答案

您可以使用评估表达式进行搜索和替换的可能性:

  • 将点放在要处理的第一行
  • M-x 查询替换正则表达式 RET
  • 搜索字符串:^0 \([0-9]+\)
  • 替换为:\,(format "0 %s" (+ \#1 \#))

  • 意思是:
  • 在行的开头搜索以单个零开头的数字
  • 替换为评估结果,其中 \#1是第一个匹配的组(如\1 但转换为数字)和 \#是已经完成的替换次数(第一次替换从 0 开始)。为每个匹配评估表达式。

  • 如果第一个数字不总是零,我会使用:
  • 搜索字符串:^\([0-9]+\) \([0-9]+\)
  • 替换为:\,(format "%s %s" \#1 (+ \#2 \#))
  • 关于emacs - 如何在配置文件的同一行上增加一系列数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921013/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com