正規表現が一致した場合、nlは数値サフィックスを追加しますか?

正規表現が一致した場合、nlは数値サフィックスを追加しますか?

次のテキストファイルがある場合:

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

正規表現の構文が間違っている可能性がありますが、一致する方法が見つからず、他のすべての使用方法がリストされています。

このウェブサイト私がやりたいこととほぼ同じですが、コマンドライン形式で数字のサフィックスだけを使用します。

ベストアンサー1

% 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を一致させ、最後に増分数を追加します。必要に応じ< inてファイル名に変更し、-i破損したファイルにフラグを追加します。解決策はawk非常に似ているようです。

おすすめ記事