В дос, есть ли способ объединить набор файлов так, чтобы, например,
1.txt
a
б
с
а также
2.txt
1
2
3
становится
merged.txt
1
Би 2
с 3
Так же, как команда вставки в системах * nix
В дос, есть ли способ объединить набор файлов так, чтобы, например,
a
б
с
а также
1
2
3
становится
1
Би 2
с 3
Так же, как команда вставки в системах * nix
Определенно соглашаются , что порт инструментов Unix или язык сценариев является путь (хотя VBScript или Powershell, вероятно , более удобный выбор , чем Python для пользователей Windows), но слияние двух файлов возможно в 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
Файл в разделе «Просто потому, что вы можете, не означает, что вы должны». :-)
Нет, вам нужно объединить строки с программой или языком сценариев, таким как Python.
Обновление: посмотрите на эти Win-порты утилит GNU, они включают в себя вставку (.exe)
Если данные достаточно просты, вы можете сделать это с помощью Excel. Или вы можете скачать OpenOffice и сделать это в Calc, но метод в Calc это боль. (Вам нужно вставить данные в два столбца, а затем объединить их с помощью функции "Конкатенация" в форме формулы (например, конкатенация (Row1; row2;))