Nl

如果正則表達式匹配,nl 添加數字後綴?

  • October 3, 2015

如果我有一個文本文件這樣說:

Xgrep () { something ; }  

Xgrep
Xgrep
Xgrep
Xgrep
Xgrep

我希望它看起來像這樣

Xgrep () { something ; }  

Xgrep 12
Xgrep 13
Xgrep 14
Xgrep 15
Xgrep 16

這意味著我想選擇從哪個數字開始,使用後綴而不是前綴,中間有一個空格(之間-s " "有一個空格)。我認為我可以使用nl它,但閱讀手冊頁似乎並非如此。我試過這個:

nl -b pexpr=Xgrep -s " " ~/desktop/test.txt

然而,這只是把這個:

   Xgrep
   Xgrep
   Xgrep
   Xgrep
   Xgrep

這可能是因為正則表達式語法錯誤但我找不到匹配的方法,它只是列出了用法的所有其他方式。

這個網站幾乎正是我想要做的,但是以命令行形式並且只有數字後綴。

% perl -ple 'BEGIN{$i=12} s/^(Xgrep)\s*$/"$1 ".$i++/e' < in
Xgrep () blah

Xgrep 12
Xgrep 13
Xgrep 14
Xgrep 15
Xgrep 16
Xgrep 17
% 

列印行,開始計數器,匹配 Xgrep 並將遞增的數字添加到末尾。如果需要,替換為文件名並就地向 clobber 文件< in添加標誌。解決方案可能看起來非常相似-iawk

引用自:https://unix.stackexchange.com/questions/233708