使用该文本中的简单Linux脚本(bash,perl,awk):
## Step
### Action :
* press
## Step 10
## Step 1
我想用^##[ ]+Step[ ]*[0-9]*$
代替## Step $i
的所有出现
我的替换次数已经完成+ 1
## Step 1
### Action :
* press
## Step 2
## Step 3
实际上,我只需要它即可自动将编号标题添加到我的降价文档中!
答案 0 :(得分:3)
对于Perl解决方案,您拥有问题中正则表达式的大部分外观。
s/^##[ ]+Step[ ]*[0-9]*$/"## Step ".(++$i)/e;
/ e修饰符将替换项转换为一个表达式,该表达式将被求值,因此,每次匹配时,它将递增$i
。
要使用此功能,您可以通过此命令传递文本
perl -pe 's/^##[ ]+Step[ ]*[0-9]*$/"## Step ".(++$count)/e;'
-p标志在执行的代码周围添加一个while
循环
答案 1 :(得分:1)
Perl单线:
perl -pe'BEGIN{$i=1} s/^##[ ]+Step[ ]*[0-9]*$/## Step $i/ and $i++;'