2012-04-27 28 views
2

検索と置換を使用して1行目のすべてのカンマの後に1を追加するのに最適な方法は何ですか?各行には複数のカンマ(これはcsv)がありますが、各行の最初のカンマの後に値1を挿入します。VIM検索と置換正規表現

答えて

7

私はちょうど:s/,/,1/はそれを行うべきだと考えています。 gオプションを使用しないと、1行に見つかった最初のインスタンスのみが置き換えられます。

Do :%s/,/,1/ファイル全体に適用したい場合、最初のオプションは1行分だけ行います。

+0

私は実際にMac OSX Mountain Lionのvimで、/ gオプションを省略することは、同じ行の正規表現の複数の出現を置き換える唯一の方法であることを経験しました。これはかなり奇妙です。/gオプションは、想定されているとおりに動作していません。/gを削除すると、1行に複数の一致のインスタンスを検索して置き換えることができました。 – netpoetica

0

この正規表現/(^.*?,)/gmをこの代わりに使用すると、$11が置き換えられます。各行について、行の先頭からすべてを最初のコンマまで取得します。これは、$1で示されるグループ1に取り込まれます。グループ1の$11に置き換えて、番号1を続けてください。ここ

チェック:http://regexr.com?30pjf

関連する問題