人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ファイル名,サイズ,Ver,タイムスタンプの順番で並んでいるcsvファイルがあります。
新旧二つのファイルを比較して双方の差分だけをテキストに出力したいと思います。(余計な物は混じっていないことが前提です。)
良いツールがあるページはありませんか?

なお、ファイル名だけで比較やサイズだけで比較ができるとなお良いです。
また、Windows限定でお願い致します。

よろしくお願い致します。

●質問者: Maqusbayzen
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:CSV Windows サイズ タイムスタンプ テキスト
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● inex
●10ポイント

http://longinus.dyndns.org/delta/troubleshooting/msdos/014.php

ファイルを比較する

DOS窓やCMD、command.com を使いますが・・・ FCコマンドを使って比較できますね。

◎質問者からの返答

FCですと不純物が混ざる(不一致行の前後の行とどのテキストを示しているのかを表す文字列)ので今回の件ですといまいち面倒です。それをきれいに整形する方法があれば別なのですが、まだ質問は続行します。よろしくお願い致します。


2 ● masanobuyo
●20ポイント

http://www.microsoft.com/japan/windows/sfu/

Services for UNIX 3.5 ホーム

OS は Windows ですね!

それなら、Windows Services for UNIX か cygwin に含まれている diff コマンドが良いかも知れません。


参考URL: http://www.microsoft.com/japan/windows/sfu/ , http://cygwin.com/

◎質問者からの返答

ありがとうございます。

Windows Services for UNIXはうまくインストールできませんでしたが、cygwinのほうはうまくいきました。diffではなく、commのほうが今回の目的には合致するようです。ただ、インストールから実施まで非常に時間がかかるので、もう少し回答をみて_たいと思います。ありがとうございました。


3 ● inosisibeyan
●10ポイント

http://hp.vector.co.jp/authors/VA017396/software/Rekisa/

差分表示ソフト Rekisa

「Rekisa」テキストの差分表示アプリケーションです。他のソフトとの連携が容易です。

◎質問者からの返答

実はRekisaは使用してみたのですが、テキスト出力ができない(差分だけ出るわけではなく全てでてしまう。)ようです。また、画像出力もファイル数が多すぎるとうまく動かないようでした。引き続きテキスト出力ができるものを募集します。


4 ● goldman
●100ポイント

http://hp.vector.co.jp/authors/VA015622/csvmat2.exe

うちの社内では、上記のコマンドを使っています。

比較1ファイル名:file_a.csv

比較2ファイル名:file_b.csv

出力ファイル名:outfile.csv

ファイル名はカラム1

サイズはカラム2

VERはカラム3

タイムスタンプはカラム4

という条件で、

例1)ファイル比較で一致しないレコードを抽出する。(比較キーはファイル名とサイズ)

csvmat2 file_a.csv file_b.csv outfile.csv [(1)(2)][(1)(2)]

例2)ファイル比較で一致するレコードのみを抽出する。(比較キーはファイル名とサイズ)

csvmat file_a.csv file_b.csv outfile.csv [(1)(2)][(1)(2)]

例3)ファイル比較で一致しないレコードを抽出する。(比較キーはファイル名)

csvmat2 file_a.csv file_b.csv outfile.csv [(1)][(1)]

例4)ファイル比較で一致しないレコードを抽出する。(比較キーはサイズ)

csvmat2 file_a.csv file_b.csv outfile.csv [(2)][(2)]


※()内は比較キーとなるカラム番号

なお、キー項目はあらかじめソートされていること。

※CSVファイルのソートはSORTCSV.exeがあります。

http://hp.vector.co.jp/authors/VA015622/csvmat.exe

http://hp.vector.co.jp/authors/VA015622/SORTCSV.exe

項目1と項目2で昇順ソートする。

SORTCSV INPUT.CSV OUTPUT.CSV (1)(2)

◎質問者からの返答

満点のご回答ありがとうございます。今から試験してみようと思います。ところで、goldman様上記のプログラムはどなたの作成したものなのでしょうか。アドレスから見るとVectorで配布されているもののようなのですが。はてな初心者でどうやって聞いたものかわからないので、このまま質問を少しの間だけ続けようと思います。できましたらおしえてください。


5 ● banzo
●100ポイント

http://www.microsoft.com/japan/office/default.mspx

Microsoft Office ホーム

(ツールは思いつかないもので)


私ならexcelでファイルAのデータ表の右にでも表のセル分=vlookup(左方のファイルAのセル,ファイルBの$範囲,1,0)をコピペして(最後は0だったか1だったか)

エラーの出なかった行を削除します。並び替えをしてエラー行を集めて残りをざっくり削除、ですかね。行の順番に意味があれば空いてる列に上から数字振っておいてざっくりやってからその数字の列で並べ替えします。

ファイルAとBを逆にしてやればもう一方も出ます。

どの列のエラーを見るかでファイル名だけの比較やサイズ比較もできるのではないでしょうか。

◎質問者からの返答

なるほど、それもかなり早い手法ですね。皆さん色々な技術や発想を持っていてはてなで聞いて本当に良かったと思います。もう少しだけ様子をみさせてください。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ