LoginSignup
26
22

More than 5 years have passed since last update.

Vim上でビジュアルモードで選択した範囲を、awkで処理して結果を貼付ける

Posted at

Vimには、外部コマンドの実行結果でテキストを置換する機能がある。
これを使えば、コマンド上ではawkでサクッとやりたくなるようなテキスト処理もVim上でできる。

例えば、以下のようなテキストをawkで処理する場合を考える。

1  2  3  4  5
6  7  8  9  10
11 12 13 14 15

これらの行をビジュアルモードで選択し、その状態から:!awkを押下し処理を記述することで、選択行を任意のawkスクリプトに食わせて処理した結果に置換できる。

:'<,'>!awk '{print $2}'

数値の羅列の中から、2列目の平均値を算出するなどの場合でも楽に記述可能。

:'<,'>!awk '{ sum += $2; num++ } END { print sum/num }'

ビジュアルモードからでは無く、コマンド中で処理する行を指定してもOK

:1,3!awk '{print $2}'
26
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
22