每行的开头加了多少不同的数字

  • 本文关键字:多少 数字 开头 bash
  • 更新时间 :
  • 英文 :


我得到了这个文件:

...
chapter 10.
1. text
2. text
text
3. text
chapter 11.
1. text
2. text
3. text
4. text
chapter 12.
1. text
text
text
2. text
...

我需要这个

...
chapter 10.
10.1. text
10.2. text
text
10.3. text
chapter 11.
11.1. text
11.2. text
11.3. text
11.4. text
chapter 12.
12.1. text
text
text
12.2. text
...

我必须把章节后面的数字放在以下所有行的开头,这些行以数字开头,后面跟着一个点。有些行不是以数字开头的,这些行将保持不变。非常感谢,欢迎提供任何帮助

Perl来拯救!

perl -i~ -pe '$ch = $1  if /^chapter ([0-9]+.)/;
print $ch if /^[0-9]+./;
' -- file.txt
  • -p逐行读取输入,处理后打印每一行
  • -i~将所有更改保存到原始文件中,创建一个扩展名为~的备份文件
  • 当一行以chapter XX.开始时,包括最后一个点的章节编号保存在变量$ch
  • 当该行以数字开头,后面跟着一个点时,$ch中的值被前置

最新更新