- ベストアンサー
二つのテキストファイルを行単位で交互に結合する方法
- 二つのテキストファイルを行単位で交互に結合させる方法を教えてください。
- テキストファイルA.txtとB.txtの内容を行単位で交互に一つのテキストファイルにまとめたいです。
- Windowsのコマンドプロンプトでbusyboxを使用せずに行単位でテキストファイルを結合する方法も知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
excelが利用できる環境であれば、マクロで処理できます。 1)excelを起動。 2)A列に「A.txt」をコピペ。 3)B列に「B.txt」をコピペ。 4)以下のマクロで希望の処理ができます。 5)C列をメモ帳にコピペして保存 (保存時の文字コードに注意) ’------------------------- Option Explicit Sub test() Dim i As Long Dim n As Single n = 1 For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row Cells(n, "C").Value = Cells(i, "A") Cells(n + 1, "C").Value = Cells(i, "B") n = n + 2 Next End Sub
その他の回答 (2)
- M_Sato
- ベストアンサー率54% (550/1003)
Excelを使えば簡単にできます。 1)A.txtをExcelで読み込み、データの前に空のA列を挿入し、A1から下に向けて奇数番号をふります。 (具体的にはセルA1に数値「1」を入力。セルA2に数式「=A1+2」を入力。それを下にコピーする) 2)これを、テキスト形式(タブ区切り)でA2.txtとして保存します。 3)同様にB.txtを読み込んで、A列に偶数番号をふります。 (A1に「2」を入力。A2に「=A1+2」を入力。下にコピー) 4)これを、テキスト形式でB2.txtとして保存します。 5)A2.txtとB2.txtをバッチファイルで結合します。具体的には、メモ帳で以下を記入して、comb.batというファイル名前で保存します。 copy A2.txt+B2.txt C2.txt 6)comb.batをダブルクリックするとC2.txtというファイルができます。 7)C2.txtをExcelで読み込み、A列で並べ替えをしてから、A列を削除します。 8)これをテキスト形式でC.txtとして保存すれば完成です。
お礼
Excelの方法を教えていただきありがとうございます。
- asciiz
- ベストアンサー率70% (6803/9674)
>もしかしたらWindowsにもともと備わっていない機能なのではないか Windows、そしてその元となったDOSに、行単位でテキストファイルを扱うコマンドは基本的にありません。 headもtailもpasteも、sedもawkもgrepも、何もありません。 find(指定した文字列を含む行を表示する)とか、fc(ファイル内容を比較する)ぐらいの物はありますが。 それだけの用途で完結していて、応用がききません。 unix(Linux)にはそれらのテキスト操作コマンドが標準で入っていますから、busyboxでかなりのlinuxコマンドを使えるようにすることで、その中の一つであるpasteコマンドも使えるようになるだけです。 Windows標準の機能でやろうとするなら、WSH(Windows Script Host)か、Windows PowerShell 用のプログラムを組んで、実行させる、ぐらいの方法しか無いでしょう。
お礼
busyboxをインストールすることでunix(Linux)にあるpasteコマンドもDOSで使えるようになるわけですね。 pasteコマンドはやっぱりWindowsにもともとそなわっていませんでしたか。詳しく説明してくださりありがとうございます。助かりました。
お礼
返答してくださりありがとうございます。 スクリーンショットまで載せていただきわかりやすいです。