我想分割一个 .txt 文件。首先,我用 notepad++ 打开 .txt 文件,然后将 EOL 从 更改\r\n
为\n
。
然后我想将文件分成 10 个部分,为此,我使用了一个名为 split 或 join 的工具以及这个脚本。
当我检查时,我发现 EOL 被设置回\r\n
。
如何拆分 .txt 文件并保留相同的 EOL?
@ECHO OFF
SETLOCAL
SET "sourcedir=C:\Documents and Settings\Admin\Desktop\split files"
SET /a fcount=100
SET /a llimit=10000
SET /a lcount=%llimit%
FOR /f "usebackqdelims=" %%a IN ("%sourcedir%\list.txt") DO (
CALL :select
FOR /f "tokens=1*delims==" %%b IN ('set dfile') DO IF /i "%%b"=="dfile" >>"%%c" ECHO(%%a
)
GOTO :EOF
:select
SET /a lcount+=1
IF %lcount% lss %llimit% GOTO :EOF
SET /a lcount=0
SET /a fcount+=1
SET "dfile=%sourcedir%\file%fcount:~-2%.txt"
GOTO :EOF
答案1
您可能想要使用这个 DOS2UNIX。此程序将转换您的文本文件,以便删除将其保存为 Windows 程序时添加的多余字符。将此程序放在您的系统上,将其添加到您的 PATH 中,并在您进行拆分后将其包含在您的脚本中。它应该会删除您的多余字符。
答案2
Notepad++ 在打开文件并以相同格式保存文件时会检测 EOL 格式。要将给定文件更改为 UNIX 格式 EOL(仅限\n
),有一个简单的菜单命令:
编辑 > EOL 转换 > UNIX/OSX 格式