Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5657

vimで、特殊文字を文字列置換する

$
0
0

vimで、特殊文字を文字列置換する

業務で、サーバーのログから特定の文字列だけ除去する作業が発生した。
image.png
今回削除したい文字列は、バックスラッシュ\ と、タブのセット。
現状1行あたりのログには、バックスラッシュ\ とタブ2つが入っている状況。
実現したいこととしては、下記のように全ての行に対してバックスラッシュ\ と、タブを1個削除したい。

image.png

手順

【vimでの文字列置換】

:%s/置換前の文字列/置換後の文字列/c

cオプションをつけることによって、置換するかどうか1回1回聞いてくれる。
全て一斉置換したい場合は、cオプションをつけない。

バックスラッシュ\ とタブのセットを変換前の文字列とすると、うまく置換できそう。
今回のケースを上記に当てはめて考えてみると、

:%s/{{バックスラッシュ/}}{{タブ}}/{{何も入れない}}/c

文字にするとこうなる。

image.png

バックスラッシュ\ は、特殊文字となるため、特殊文字を条件にマッチさせたい場合は\でエスケープが必要になる。
エスケープが必要な特殊文字は、^ $ . * [ ] / ~ \となる。

vimの:を押すモード内でtabを表示するには、
tab+control で出せます。水色表示されれば成功となります。

以上の点を踏まえると、/^Iのセットを削除するには、

:%s/\\^I//c

で削除が可能となる。

 参考にさせていただいた記事

正規表現の置換で特殊文字をエスケープする方法

メタ文字の効果を消すエスケープ処理


Viewing all articles
Browse latest Browse all 5657

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>