VIVI(エディタ)のスクリプトについて

このQ&Aのポイント
  • VIVI(エディタ)を使用している際に、ExcelVBAで検索文字列を収集し、viviのスクリプトを作成し、grepを行いつつ保存する方法について教えてください。
  • 質問者はVIVI(エディタ)を仕事で使用しており、特定のフォルダ内のファイル群からgrepを使用して検索を行い、結果をCSVで保存しています。この一連の作業を繰り返す際に、ExcelVBAで検索文字列を収集し、viviのスクリプトを作成して一気にgrepを行いつつ保存する方法を知りたいとのことです。
  • ExcelVBAで検索文字列を収集し、viviのスクリプトを作成し、grepを行いつつ保存する方法について教えてください。質問者はVIVI(エディタ)を仕事で使用しており、特定のフォルダ内のファイル群からgrepを使用して検索を行い、結果をCSVで保存しています。この一連の作業を繰り返す際に、ExcelVBAで検索文字列を収集し、viviのスクリプトを作成して一気にgrepを行いつつ保存する方法を知りたいとのことです。
回答を見る
  • ベストアンサー

VIVI(エディタ)のスクリプトについて

OS:WindowsVista Ultimate SP1 viviバージョン:2.0375 Excelバージョン:2003 SP3 仕事でviviエディタを使用しているものです。 宜しくお願いします(viviは全くの初心者です・・・) あるフォルダ内のファイル群からgrepを使用して出た結果をCSVで保存します。 その一連作業を検索文字列だけ変えて数十回ほど繰り返し作業しています。 そこでgrepで使用する検索文字列をExcelVBAで収集し文字列操作で viviのスクリプトを作成してはき出されたスクリプトファイルで一気にgrepを 行うと同時に保存できないかと考えております。 そこで以下の条件を満たしたスクリプトを記述する場合どのように記述するか教えて下さい。  (1)検索文字列、ファイル種別(*.*)、ディレクトリを指定した状態でのgrep   (他はデフォルトです。)  (2)grep終了後、検索文字列で保存(csv形式) ExcelVBAの部分は大体出来たのですがスクリプトが全くわかりません。 サイトで色々調べたのですが、見つからず(分からないだけかも)困っている状態です。 すいませんがgrep-保存する場合のスクリプト内容を教えていただけないでしょうか。 宜しくお願い致します。

noname#140793
noname#140793

質問者が選んだベストアンサー

  • ベストアンサー
  • vivisuke3
  • ベストアンサー率100% (1/1)
回答No.1

とりあえず (1) のみ回答します。 grep を行うには以下の ex コマンドを使います。 :grep 正規表現 ディレクトリ 拡張子[Enter] たとえば、abc を c:\test 以下の .txt ファイルから grep したい場合は以下の様にします。 :grep abc c:\test *.txt[Enter] んで、スクリプトで ex コマンドを使用するときは、thisView.viCommand(文字列) を使います。 注意しなくてはいけないのは、文字列中では \ をエスケープする必要があることと、最後に改行(\n) を指定する必要があることです。 たとえば、abc を c:\test 以下の .txt ファイルから grep したい場合は以下の様にします。 thisView.viCommand(":grep abc c:\\test *.txt \n");

noname#140793
質問者

お礼

お礼が遅れてすいません。 回答ありがとうございました。 半ばあきらめ、秀丸マクロでやろうかと思いましたが 回答のおかげでviviでのツール作成が復活できそうです。 本当に助かります。 ありがとうございました。

関連するQ&A

  • 一般的なエディタで1行目を対象としたGREP

    一般的なエディタで1行目の文字列検索(GREP)はできるものでしょうか。 (例) テキストファイルの一番上に 「Option Explicit」という文字があれば、リストを表示する。 #ちなみに私はVIVIを使っています。(素人レベル)

  • ExcelVBA CSV読込書き込み

    ExcelVBAです。Excelバージョンは2003,2007です。 CSVファイルを読み込み、書き換えて、別のファイル名で保存します。 一通りできるのですが、次の場合どの様にしたら良いでしょうか? CSVのデータ項目が、20桁ほどの数値、住所などの文字列、5桁ほどの数値となっています。 20桁ほどの数値は文字列扱いにしたいのですが、Excelでは指数表示になってしまいます。 そのままCSVとして保存すると指数で保存されてしまいます。 これを文字列として表示し、CSV保存でも文字列として保存したいのです。 よろしくお願いします。

  • ファイルからある文字列の個数を数えたい

    perl5でunixの"wc"や"grep -c"みたいに1つのファイルの中からある文字列の個数を カウントするスクリプトを作ろうとしています。 ファイルは256文字×10万行くらいのテキストで、 検索する文字列は15文字前後×40個(例えば「apple-000001」「lemon_orange」など)です。 どのようなスクリプトを組んだら効率よく各文字列をカウントできるのでしょうか? それよりwcやgrep -cを40回行った方が早いのでしょうか?

    • ベストアンサー
    • Perl
  • 複数の文字列を含むファイルの検索-linux

    linuxにおいてファイル内の文字列を検索するのにgrepを用いますが、 複数の文字列を含むファイルを検索するにはどうしたらよいでしょうか。 同じ行ではなく別の行にある場合で、ファイル名を出力したいです。 つまり ~~~~~~~~~ ~~~~~~~~文字列1  ~~~~~~~~~~ ~~~~~~~~ ~~~~~~~文字列2 のような記述のあるファイルを探すにはどうしたらよいでしょうか。

  • FreeBSDでWindowsの秀丸エディタみたいなgrepする方法?

    FreeBSDでWindowsの秀丸エディタみたいなgrepする方法があったら教えて下さい。 たとえば、秀丸ではこんな風にgrepしてます。 検索する文字列:hoge 検索するファイル:*.c *.h 「大文字/小文字の区別」にチェック 「単語の検索」にチェック 「サブフォルダも検索」にチェック どなたか分かる方、よろしくお願いします。

  • スクリプトについて教えてください。

    教えてください。お願いします。 ひとつのファイルの中身を読み、ある一定の文字列が出て来てから、また決まった文字列が出てくるまでを別のファイルに書き出す方法(スクリプトの書き方)を教えてください。 hp-uxの中にあるrunacctというスクリプトによってできる月次ファイルfiscalというのがあってそのファイルの中には3つのデータが書き出されます。 どこからどこまでがひとつのデータという事はわかります。 これを一つずつ、3つのファイルに書き出すスクリプト(手動でよいので)をつくりたいのです。 hp-uxについてもスクリプトについても全くというほど知識がないので、 ヒントでも良いので下さい。お願いします。

  • syleraのスクリプトを作りたい

    sylera2を使っていますが、少し使いにくいので、スクリプトを書いて使いやすくしようかなと考えています。 スクリプトから以下のことをしたいのですが、どのようにすればいいでしょうか? ・アドレスバーに入力されている文字列を取得する ・検索バーに入力されている文字列を取得する ・検索バーに文字を入力する よろしくお願いします。

  • ファイルの文字列の処理の質問

    今ファイルに対して文字列の処理をしています。 あるファイルに対して一定の文字列を検索して、その検索したい文字列が なければ、その一行をファイルに出力したいですが、手元にwindowsバージョン のgrep.exe で実現すると考えています。 しかし、検索したいファイルは、文字列が入ってない行があります。 そのため、検索したい文字列が存在しない行は、改行だけの行を結果として 出力されています。改行だけの行を除きたいですが、どうすればいいか? ファイルのsjisです。例えば、内容としては、以下のようになっています。 aiiiiii ballllll fafafa 777777 とするファイルがあります。そのファイルに対して、aという文字が入ってない行を 取りたいですが、実際にgrep -v "a" ファイル名 でやると、777777の行とすべて 改行だけある行が取られてました。 777777だけをとる方法がありますでしょうか?

  • 複数の文字列を検索

    あるログファイルの文字列を取得して。検索でヒットした文字列行 を返すスクリプトを作成しております。 検索:"OK"    日付 対象行 : OK! Tue Jul 19 文字列"OK"は普通に # grep "OK" ログファイルPath で検索できますが、 文字列と日付を両方引っ掛ける場合は・・・ grep -e "OK" -e env LANG=c date -u +"%a %b $d" ログファイルPath 当然コマンドエラーになります。 dateコマンドから日付を取得して、grepにて引っ掛ける方法を知りたいので すが、お分かりになる方、ご教授お願い致します。

  • UnicodeでないファイルをUnicode保存

    いつも楽しく勉強させていただいております。環境はWin7Office2010です。 ExcelVBAからFSOを用いてCSV形式のファイルを読み込み、多少の加工をして最終的にはSQLServerに取り込むという作業をしています。 問題はCSVファイルのことなのですが、どうやらUnicodeでないようでFSOで開くと文字化けしてしまうものがあります。 Excelやワードパッドで開くとちゃんと読めます。 StrConv関数でUnicodeに変換しようとしたのになぜかできませんでした。 今回はファイル数が少なかったので、手作業でワードパッドで開き、保存の形式をUnicodeにして事なきを得ましたが、今後同様のファイルを多数処理しないといけないので手作業での変換は難しいです。 そこで、こんなことは可能でしょうか。 ・ExcelVBAで非Unicode形式のファイルを読み、Unicodeで別ファイルに書き出す。 または、 ・ExcelVBAでワードパッドなどを制御し、自動的にファイルを開いてUnicodeで保存しなおす。 ついでといっては何ですが、そのファイルの文字コードが何であるかはどうやって分かりますか。 できればVBAを介して調べる方法があれば教えてくださるとうれしいです。

専門家に質問してみよう