2つのファイルの差を抽出したいNo.21143
黄色いシャツ さん 06/04/06 06:46
 
今日は。秀丸エディターVer5.15を使用中です。
A、Bのファイルとも名前と住所が千件あまり入力されているCSV形式のファイルです。
ファイルAには存在し、ファイルBには存在しない行のみ別ファイルに抽出したいので
すが、゜のような方法をとればよいのでしょうか?

[ ]
RE:21143 2つのファイルの差を抽出したいNo.21146
ENCODINGSHIFTJIS さん 06/04/06 10:24
 
正解は データベースソフト を使え です
OpenOffice2.0.2 日本語版 Base とか
SQLite
など。

コマンド的操作では
両方をsortして、・・・になりますが
21世紀ですから、どうでしょう。

簡単な場合は、どちらでも一緒
将来性は 前者です。

[ ]
RE:21146 2つのファイルの差を抽出したいNo.21151
秀丸担当 さん 06/04/06 14:53
 

秀丸エディタでやるとしたら、マクロを使って少々手間をかけて作れば可能だと
思います。
マクロライブラリを探してみると、マクロ作者様によって作られたいいマクロが
何かあるかもしれません。
なにか無いでしょうか。

[ ]
RE:21151 2つのファイルの差を抽出したいNo.21154
ENCODINGSHIFTJIS さん 06/04/06 15:58
 
>なにか無いでしょうか。

UNIXタイプのコマンド使いでは、
SORT して DIFF(オプション多数あり)ですが。

[ ]
RE:21154 2つのファイルの差を抽出したいNo.21155
ENCODINGSHIFTJIS さん 06/04/06 16:37
 
>>なにか無いでしょうか。

>秀丸エディタのテキスト形データ処理で強行するなら
(テキストで データ処理は 全然 今風 じゃない、チェケラッチョ)

秀丸エディタのマクロライブラリ
よく使うちょっと便利なマクロ 2004/03/04
すこんちょ

// 重複行を除去
//   by Sconcho, 2004.03.04 v1.0

#y = linecount - 1;
moveto 0, #y; $line1 = gettext(0, #y, linelen, #y);
#y = #y - 1;

while (#y >= 0) {
 moveto 0, #y; $line2 = gettext(0, #y, linelen, #y);

 if ($line2 == $line1) {
  moveto 0, #y;
  deleteline;
 }
 $line1 = $line2;
 #y = #y - 1;
}

の改造をします、
1.行末の文字を比較の対象にしない
2.一致したら両方削除
にして。

処理手順
1.Aファイルの行末に A を付加
  Bファイルの行末に B を追加
2.両ファイルを連結して1本にして SORT
3.改造した // 重複行を除去 マクロを適用
4.行末が Bでないものを 全消去

[ ]
RE:21155 2つのファイルの差を抽出したいNo.21156
黄色いシャツ さん 06/04/07 00:00
 
皆様コメントをありがとうございます。
同一行、重複行、といったキーワードで捜しておりましたが、ソートをキーワードに
マクロを探したところ、重複行を削除することができました。これと元ファイルの差
を抽出することをマクロで試してみます。
ありがとうございました。

[ ]