Wie kann ich Dateien zeilenweise in der Windows-Befehlszeile zusammenführen?

4062
Paul

Gibt es eine Möglichkeit, eine Reihe von Dateien zusammenzuführen, um sie beispielsweise zusammenzuführen

1.txt

a
b
c

und

2.txt

1
2
3

wird

merged.txt

a 1
b 2
c 3

Genauso wie der Befehl zum Einfügen auf * nix-Systemen

1
dos wie in "DOS - Betriebssystem" oder wie in "Windows cmd.exe"? akira vor 13 Jahren 3
cygwin arbeitet für mich XIMRX vor 9 Jahren 0

3 Antworten auf die Frage

1
invert

Nein, Sie müssen die Zeilen mit einem Programm oder einer Skriptsprache wie Python zusammenführen.

Update: Schauen Sie sich diese Win-Ports der GNU-Dienstprogramme an . Sie enthält das Einfügen (.exe).

Schade. Sukcs, Linux nicht bei der Arbeit zu haben ...: p Paul vor 13 Jahren 1
@Paul: Installieren Sie http://cygwin.com/setup.exe akira vor 13 Jahren 0
1
Satanicpuppy

Wenn die Daten einigermaßen einfach sind, können Sie dies mit Excel tun. Oder Sie könnten OpenOffice herunterladen und in Calc ausführen, aber die Methode in Calc ist ein Schmerz. (Sie müssen die Daten in zwei Spalten einfügen und dann mit der Funktion "Verketten") in Formeln zusammenführen (z. B. verketten (Zeile1; Zeile2;)).

1
Kanji

Auf jeden Fall einig, dass eine Portierung von Unix - Tool oder einer Skriptsprache ist der Weg zu gehen (obwohl VBScript oder Powershell sind wahrscheinlich bequeme Möglichkeiten als Python für Windows - Anwender), aber Zusammenführen von zwei Dateien IST möglich in DOS: -

@ECHO OFF  REM .bat to merge 1.txt and 2.txt  GOTO :Main  :StartMerge SET /P _a=<%1 SET /P _b=<%2  ECHO %_a% %_b%  DEL %1 %2  GOTO :EndMerge  :CleanUp SET _LinesIn1= SET _LinesIn2=  SET _a= SET _b=  GOTO :EOF  :Main SET _LinesIn1=0 SET _LinesIn2=0  FOR /F "delims=: tokens=1,*" %%i IN ('findstr /n "^" 1.txt') DO ( ECHO.%%j>_c1n%%i SET /A _LinesIn1+=1 )  FOR /F "delims=: tokens=1,*" %%i IN ('findstr /n "^" 2.txt') DO ( ECHO.%%j>_c2n%%i SET /A _LinesIn2+=1 )  IF %_LinesIn1% NEQ %_LinesIn2% ( ECHO Cannot merge files; mismatched line count:- ECHO 1.txt - %_LinesIn1% lines ECHO 2.txt - %_LinesIn2% lines  DEL _c*  GOTO :CleanUp )  FOR /L %%n IN (1, 1, %_LinesIn1%) DO ( CALL :StartMerge _c1n%%n _c2n%%n  :EndMerge REM No-op to avoid ") was unexpected at this time." error )  GOTO :CleanUp 

Datei unter "Nur weil du kannst, heißt das nicht, dass du es solltest." :-)