vimでパターンを見つけて置き換える方法

vimでパターンを見つけて置き換える方法

現在の見通し

P12104001;example_01_01,
P12104002;example_02_01,
P12104003;example_03_01,
P12104004;example_04_01,

いたらいいな

<example_01_01>,
<example_02_01>,
<example_03_01>,
<example_04_01>,

gvimで置換を使用するオプションを提案してください(表示された領域の文字列のみを置き換えることができるように、例は以下にあります:'a,'b s \*******\<******>

答え1

~から始める

P12104001;example_01_01,
P12104002;example_02_01,
P12104003;example_03_01,
P12104004;example_04_01,

これに関して

P12104001;example_01_01,
<example_02_01>,
<example_03_01>,
P12104004;example_04_01,

使用

:/002/,/003/s/.*\(example_.._..\)/<\1>/

読む

: Command
 /Start of section/,/End of section/
            s/    substitute
             .*   all chars up to 
                \(string to remember . for wild chars\)
             /<   with 
               \1 put in the remember string
                 >/  rest of replacement.

行の範囲を指定する他の方法については、Vimで:help addressを使用してください。

答え2

Fred Gannettは既にあなたの質問に答えていますが、あなたのコメントに答えるには:

%s/.*\(example_\d\+_\d\+\).*/<\1>,/

「例」の後の数字をハードコードせずにファイル全体を置き換えます。範囲を制限するには、視覚的な選択または類似のもの.,3s/.*\(example_\d\+_\d\+\).*/<\1>,/(現在の行から3行目まで)を使用します。

正規表現を含むすべての行を置き換える必要があることを確認してください。

関連情報