2009-09-19 5 views

Respuesta

12

Los archivos de texto son al igual que cualquier otro archivo y carácter de nueva línea es como cualquier carácter othe, por lo que sólo las restricciones del archivo tamaño habitual aplican (límite de tamaño de 4 Gb en sistemas de archivos más antiguos, el archivo debe caber en el disco, etc.)

No tendrá problemas para leerlo y escribirlo, a menos que lo lea línea por línea: puede quedarse sin memoria o encontrarse con un desbordamiento de búfer. Esto puede suceder en cualquier editor de texto o programa de procesamiento de texto (como sed o awk), porque, a diferencia del núcleo del sistema operativo, en esos asuntos de separación de línea

Sugiero mantener un usuario por línea, ya que es más natural leer y menos propenso a errores cuando procesa el archivo con un programa externo.

+0

Al menos kwrite y vi no se ven afectados por el tamaño de línea (probado en un archivo XML de una sola línea de 4Mb) –

+0

Sin duda hay un límite. Tiene que caber en el disco, y si lo está leyendo línea por línea, tiene que caber en la memoria.Además de eso, es posible que necesite una gran capacidad de archivos para tratar archivos de más de 4 Gb. –

+0

@brian d foy: ya que tienes más experiencia aquí, más de SO, estoy siguiendo tus consejos y jugando Captain Obvious, así que ahora mi publicación dice que un archivo en un disco no debe exceder el tamaño de ese disco. Suspiro. –

3

No hay límite de tamaño, excepto el sistema de archivos, que probablemente sea de 2TB o algo así.

2

No, no hay tal límite hasta que alcance los límites de tamaño de archivo.

1

En algunos sistemas Unix antiguos, algunas utilidades de texto (por ejemplo, unir, ordenar e incluso algunos viejos awk) tienen un límite en el tamaño de línea máximo. Creo que este es el límite de las utilidades, pero no del sistema operativo. Las utilidades de GNU no tienen un límite tal que yo sepa y, por lo tanto, Linux nunca tiene este problema.

+0

Solía ​​tener este problema en una versión anterior de IRIX y AIX. Luego instalé GNU textutils (no fusionados con coreutils) en mi directorio personal, que resolvió el problema – user172818

-1

El tamaño del archivo depende del sistema de archivos de su sistema operativo. Herramientas no tiene límite para eso (o al menos nunca lo he visto hasta ahora ...)

+0

Algunas herramientas tienen límites porque usan un espacio de direcciones de cuatro bytes, por lo que hay un gran soporte de archivos en algunas herramientas. –

3

Lo único que debe preocuparse es el tamaño del archivo que puede crear y el tamaño del archivo que usted puedo leer.

Las computadoras no saben nada sobre líneas, que es una interpretación de los bytes en un archivo. Decidimos que hay una secuencia de caracteres que demarcan el final de una línea, y luego le decimos a nuestros programas que extraigan cosas del archivo hasta que llegue a esa secuencia. Para nosotros, eso es una línea.

Por ejemplo, se puede definir una línea en su archivo de texto para terminar con una coma:

$/ = ','; 

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

__DATA__ 
a,b,c,d,e,f,g 

A pesar de que parece que tengo una sola línea bajo __DATA__, es sólo porque estamos acostumbrados a libros. Las computadoras no leen libros. En lugar de ello, este programa piensa que todo entre comas es una línea:

Line is: a 
Line is: b 
Line is: c 
Line is: d 
Line is: e 
Line is: f 
Line is: g 
2

me encontré con un problema de este tipo con una línea sobre chrs 1 m de largo en Kwrite.

Aunque no hay límite teórico, si va a trabajar en su archivo, tendrá que tener la línea ajustada para mostrar el ancho. En cada edición, se realizan muchos cálculos, quizás involucrando memoria swap. Thar hace la edición torpe. Las líneas largas pueden ser bastante inconvenientes.

Cuestiones relacionadas