Vim:文字列で始まるすべての行を行に置き換えます


9

このテキストについて

hardware mac 33:33:333:33:33
hardware mac 33:13:333:33:33
hardware mac 33:23:333:23:34
hardware mac 33:033:133:33:35
...

ハードウェアMACで始まるすべての行を次のように置き換えたい

hardware mac 00:00:00:00:00:00

私が試してみました

sed s/^hardware mac/hardware mac 00:00:00:00:00:00/gc

そしてエラーを与える

古典的なvimコマンドも

%s:/^hardware mac/hardware mac 00:00:00:00:00:00/gc

ただし、文字列のハードウェアMACのみを変更して、数字は変更しないでください。ハードウェアMACで始まる文字列を私の文字列に置き換える方法は?

回答:


14

ほぼ正解です。残りの行(vim)と一致するのを忘れました。

:%s/^hardware mac.*/hardware mac 00:00:00:00:00:00/gc

行ごとに1回しか一致しないためgc、何をしているのか確信がある場合は、オプションを最後にドロップできますg

sedそれは同じことです。

sed -i 's/^hardware mac.*/hardware mac 00:00:00:00:00:00/' filename

sed'置換コマンドsは、c(確認)フラグを受け入れないことに注意してくださいvim


+1 FWIW gでは、/gcこの正規表現のみとにかく1行に1つに一致することができるので、冗長です。
Sparhawk

あなたがこのコメントを書いている間、私は私の回答を編集していました(=
Kira

このsed構文はGNUスタイルです。すべてのバージョンがサポート-iしているわけではなく、一部にはそれに対する引数が必要です。
Eric Renouf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.