2017-06-01 10 views
0

に引数を渡す方法:Vimの - 私は、単純なcsvファイル次ているawkコマンド

sno, name , age, gender 
1 , abc, 30, M 
2 , xyz, 60, F 
3, def, 30, M 

は、私は特定の列の意味を見つけるためにはawkを使用したいです。私は、次のコードしようとしている次のように

command -nargs=1 Colmean %!awk -F',' '{ total += $<args>} END { print total/(NR-1)}' 

は、使用する:

:Colmean 3 

ただし、引数を '3' awkコマンドに渡されていません。一重引用符の代わりに二重引用符を使用することもできません。

問題はどこで解決できますか?ありがとう。

+0

なぜコマンドラインからではなく、エディタ内でこれをやりたいのですか? –

+0

ファイルを見ながら簡単に分析してください。 – rnso

+1

Excelなどを使用する方が簡単で簡単です。ちょうどスティーン '.... –

答えて

1

注意、あなたはここでのawkを必要としない:

command! -range=% -nargs=1 ColMean echo eval(join(map(getline(<line1>,<line2>), 'split(v:val, ", ")[<args>]'), '+'))/(<line2>-<line1>+1.0) 

を戻るあなたの質問に、コマンドのマッピングは、あなたが本当に実行しているものを変更することができます。バッファに:debug 2,$ColMean 3を試して、何が起きているのかを確認することができます。

関連する問題