我有一个文件,其内容是
(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 做到这一点?
谢谢。
这更像是一份工作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)