如何使用 \n 而不是 \r\n 来拆分大型 .txt 文件

如何使用 \n 而不是 \r\n 来拆分大型 .txt 文件

我想分割一个 .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 中,并在您进行拆分后将其包含在您的脚本中。它应该会删除您的多余字符。

https://sourceforge.net/projects/dos2unix/

答案2

Notepad++ 在打开文件并以相同格式保存文件时会检测 EOL 格式。要将给定文件更改为 UNIX 格式 EOL(仅限\n),有一个简单的菜单命令:

编辑 > EOL 转换 > UNIX/OSX 格式

相关内容