将文本文件分割成多个较小的文本文件,使用命令行。

36 浏览
0 Comments

将文本文件分割成多个较小的文本文件,使用命令行。

我有多个文本文件,大约有10万行,我想将它们拆分成每个5000行的较小文本文件。

我使用了以下命令:

split -l 5000 filename.txt

这会创建一些没有扩展名的文件:

xaa
xab
aac
xad
xbe
aaf

我只想将它们命名为类似这样的名字:

file01.txt
file02.txt
file03.txt
file04.txt

如果不可能的话,我只希望它们有“.txt”扩展名。

0
0 Comments

原因:主要是为了将一个大的文本文件分割成多个小的文本文件,以便处理或传输。

解决方法:使用批处理命令来实现这个目标。下面是一个示例的批处理脚本,它可以将一个大的文本文件分割成多个小的文本文件。

OFF

SETLOCAL

SET "sourcedir=U:\sourcedir"

SET /a fcount=100

SET /a llimit=5000

SET /a lcount=%llimit%

FOR /f "usebackqdelims=" %%a IN ("%sourcedir%\q25249516.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

这个脚本将指定的源文件(q25249516.txt)分割为多个文件,每个文件包含5000行。文件名以file开头,后面跟着一个两位数的数字。每个文件的内容是从源文件中读取的行。

这个脚本使用了一个循环来逐行读取源文件的内容。每当读取的行数达到5000行时,就会创建一个新的文件并将剩余的行写入该文件。使用一个计数器(fcount)来给每个新文件分配一个唯一的编号。

0
0 Comments

问题的原因:用户想要将一个文本文件分割成多个较小的文本文件,以便于处理和管理。

解决方法:用户可以使用命令行来将文本文件分割成多个较小的文本文件。最直接的Unix命令是使用split命令,具体命令如下:

split -l 5000 -d --additional-suffix=.txt $FileName file

其中,参数说明如下:

-l 5000:将文件分割成每个文件包含5000行的大小。

-d:使用数字作为后缀。默认情况下,后缀会从aa到zz,使用-d参数后,后缀将从00到99。

--additional-suffix:可以指定后缀,这里指定了.txt作为后缀。

$FileName:要分割的文件名。

file:生成的文件的前缀。

如果在Mac上,默认的split版本比较简化。可以使用以下命令安装GNU版本:

brew install coreutils

然后,可以使用gsplit命令替换split命令来执行上述命令。可以通过man gsplit命令查看更多详情。

在Windows 10上,如果已安装WSL,可以挂载Windows目录并使用split命令。可以使用以下命令进入Windows目录:

cd /mnt/c/

以上是将文本文件分割成多个较小的文本文件的原因和解决方法。

0
0 Comments

问题的出现原因:需要将一个大小为23GB的csv文件拆分成多个较小的文件,以便能够查看这些文件。

解决方法:使用C#编程语言编写代码来实现文件拆分操作。具体代码如下所示:

var list = new List();
var fileSuffix = 0;
using (var file = File.OpenRead(@"D:\Temp\file.csv"))
using (var reader = new StreamReader(file))
{
    while (!reader.EndOfStream)
    {
        list.Add(reader.ReadLine());
        if (list.Count >= 1000000)
        {
            File.WriteAllLines(@"D:\Temp\split" + (++fileSuffix) + ".csv", list);
            list = new List();
        }
    }
}
File.WriteAllLines(@"D:\Temp\split" + (++fileSuffix) + ".csv", list);

这段代码使用了C#的文件读写和流处理功能,通过读取原始文件的每一行数据,并将其添加到一个列表中。当列表中的数据行数达到1000000行时,将列表中的数据写入一个新的拆分文件中。最后,将列表中剩余的数据写入最后一个拆分文件中。

这段代码可以直接在LINQPad中运行,并且可以根据需要进行修改。不需要进行编译操作,非常方便。

通过以上的代码,可以轻松地将一个23GB的csv文件拆分成多个较小的文件,以便能够方便地查看和处理这些文件。这是一个很好的解决方案。

0