是否有从Perl创建的文本文件的行长度限制?

kis*_*ore 7 unix filesystems perl file

在编写Perl脚本时,我需要在文件的一行中用逗号分隔编写用户名.

这就是为什么我想知道.txt文件中该行的最大大小是否有任何限制.

P S*_*ved 14

文本文件就像任何其他文件一样,换行符就像任何其他字符一样,因此只适用通常的文件大小限制(对旧文件系统的4Gb大小限制,文件必须适合磁盘等)

读取和写入它不会遇到任何问题,除非你逐行读取它 - 你可能会耗尽内存然后遇到各种缓冲区溢出.这可能发生在任何文本编辑器或文本处理程序(例如sed或awk)中,因为与OS内核不同,在那些行分离事项中

我建议每行保留一个用户,因为当你使用外部程序处理文件时,它更自然地阅读并且不易出错.

  • 没有什么是显而易见的。您可能能够在Perl中创建一个字符串,该字符串无法保存到完整磁盘,但可以容纳在程序存储器中,并且您可能没有足够的程序存储器来一次性读取整个文件。这些是您在处理非常大的字符串和文件时必须处理的实际问题,但是大多数人从未考虑过它们。 (2认同)

bri*_*foy 5

您唯一需要担心的是您可以创建的文件的大小以及您可以读取的文件的大小。

计算机对行一无所知,行是对文件中字节的解释。我们决定有一些字符序列来划分行尾,然后告诉我们的程序从文件中抓取内容,直到它到达该序列。对我们来说,那是一条线。

例如,您可以在文本文件中定义一行以逗号结尾:

 $/ = ',';

 while( <DATA> )
    {
    chomp;
    print "Line is: $_\n";
    }

 __DATA__
 a,b,c,d,e,f,g
Run Code Online (Sandbox Code Playgroud)

尽管看起来我下面有一行__DATA__,但这只是因为我们习惯了书籍。电脑不读书。相反,该程序认为逗号之间的所有内容都是一行:

Line is: a
Line is: b
Line is: c
Line is: d
Line is: e
Line is: f
Line is: g
Run Code Online (Sandbox Code Playgroud)