- ベストアンサー
テキストファイルの引き算
コマンドプロンプトから2つのファイルを引数指定して片方のみに存在する行を出力する方法を探しております。 (例) A.TXT ---- 111 222 333 444 555 B.TXT ---- 333 111 222 A.TXTからB.TXTを引き算した結果として、以下が出力したく考えています。 --- 444 555 OSはWindowsXPで、バッチファイルやVBスクリプトなど、コマンドラインから実行できる方法を探しています。(出回っているツールで、コマンドラインから実行できるものも可) ご存知の方がいらっしゃいましたら、ご教授ください。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
差分というのは、fc a.txt b.txt で出力されるような物で、この質問だと引き算でいいかと。 findstr /v /g:b.txt a.txt と、一発です。詳しくは、findstr /? で説明が出ます。
その他の回答 (3)
- salsberry
- ベストアンサー率69% (495/711)
UNIX系のOSであれば、 cat A.TXT B.TXT | sort | uniq -u で実現できます。ただし、A.TXTの中には重複した行がないこと、B.TXTに含まれている行は全てA.TXTに含まれていることが前提として必要です。 同じことをWindows XPでやるにはCygwinをインストールするなどの方法がありますが、これだけのためにCygwinをインストールするのは大袈裟という気もします。
- edomin7777
- ベストアンサー率40% (711/1750)
こういうやつを使用する。 http://www.vector.co.jp/soft/winnt/util/se424177.html ※「引き算」とは言わずに「差分」と言います。
- hanabutako
- ベストアンサー率54% (492/895)
Unix系OSならfgrepで一発なのですが... % fgrep -v -f b.txt a.txt
お礼
件数が少ないと正しく結果が出ますが、1万件程度で実施したところ、正しく引き算されませんでした。上限があるのでしょうか?