【 Vim 】複数ファイルの文字列一を括置換する方法

スポンサーリンク

Vimで複数ファイル内の文字列を一括置換する

vimを使って、ファイル内のプログラムで文字列を一括変換する方法をまとめておく。

似た種類のファイルが大量にあるときに特定の文字列を別の文字列に一括変換したいときがあるかもしれない。

その場合に役立つはず。
手順を以下にまとめておく。

Vim内で操作

vim

まずは、ターミナルでこのコマンドを実行してVimの環境に入る。

コマンドは名前を変更したいディレクトリ内で実行すると、パスを書く手間が省けるので楽。

変更するファイルを選択

:argadd ./*.html

このコマンドをVim環境内で実行することで変更するファイルを選択して登録する。

この例では、今いるディレクトリ内の全てのhtmlファイルを変更対象にしている。

:args

このコマンドを実行すると、登録されているファイルを確認できる。

文字列を一括変換する

それでは、文字列を変換する準備は出来たので、一括変換をおこなう。

:argdo %s/(変換前)/(変換後)/g | update

(変換前)と(変換後)は、それぞれ自分が変えたい文字列と、変換後の文字列にする。

| updateというのは、変更された内容を保存したい場合には付けておくと良い。

スポンサーリンク

例)浮動小数点を整数に四捨五入する

例えば、3.14159265を3.0に変換するには以下のコマンドを実行すれば良い。

:%s@\d\+\.\d\+@\=round(str2float(submatch(0)))@g | update

参考:https://hail2u.net/blog/software/vim-round-and-replace-decimal.html

また、数値の.0を消して整数型にしたいときは以下のコマンドをvimで実行すればできる。

:%s@\.\+\0\+<@<@g | update

以上が、文字列をvimで一括変換する方法でした。

参考

以下を参考にした。

【 Vim 】文字列一括置換 ( 複数ファイル編 ) - Qiita
#はじめに「 あー、複数ファイルの文字列一括置換できる方法ないかなー。 」と思って、いろいろ調べていたら、下記の方法でできるようなので、参考までに手順をまとめてみた。1. 置換対象のファイル…

人気記事

人気記事はこちら。

CUDA、cuDNNのバージョンをターミナルで調べるコマンド
【Pytorch】テンソルを連結する方法(cat・stack)
【Pytorch】テンソルの次元を追加・削除する方法【dim】
【Protobuf】"TypeError: Descriptors cannot not be created directly."を解決する【solved】
【Python】Tensorflowをダウングレード・アップグレードするコマンド
スポンサーリンク

新着記事

新着記事はこちら。

【Ubuntu】マウスカーソル速度を上げる方法【xinput】
【Ubuntu22】Brave Browserで「公開鍵を利用できないため、以下の署名は検証できませんでした」が出た場合の対応
【インド】バンガロールから日本へ帰国。機内食は豪華
【インド】帰国後の寿司が美味い【羽田空港】
寿司打記録更新

タイトルとURLをコピーしました