在每一行中提取一个数字并添加另一个数字

Tim*_*Tim 2 awk

我有一个文件,其内容是

(bookmarks
 ("Cover"
  "#01.djvu" )
 ("Title page"
  "#all_24223_to_00243.cpc0002.djvu" )
 ("Preface"
  "#all_24223_to_00243.cpc0004.djvu" )
 ...
Run Code Online (Sandbox Code Playgroud)

我想将其内容更改为

(bookmarks
 ("Cover"
  "#2" )
 ("Title page"
  "#3" )
 ("Preface"
  "#5" )
...
Run Code Online (Sandbox Code Playgroud)

通过保留 之前的数字.djvu,删除前导零,并在其上加一。我想知道你会如何使用 awk 做到这一点?

谢谢。

Sté*_*las 5

这更像是一份工作perl

perl -pe 's/"#\K.*?(\d+)\.djvu(?=")/$1+1/ge' <file
Run Code Online (Sandbox Code Playgroud)

带变量:

INCR=1 perl -pe 's/"#\K.*?(\d+)\.djvu(?=")/$1+$ENV{INCR}/ge' <file
Run Code Online (Sandbox Code Playgroud)

或者:

perl -spe 's/"#\K.*?(\d+)\.djvu(?=")/$1+$incr/ge' -- -incr=1 <file
Run Code Online (Sandbox Code Playgroud)