Tecnología

Inicio

Cómo quitar líneas en blanco de un archivo en Perl

Poner líneas en blanco en un script en Perl que está creando es una cosa fácil de hacer. Puede ser que algo está mal con su archivo o simplemente presiona la tecla Enter demasiadas veces. No importa cómo sucede, el siguiente script eliminará estas líneas en blanco (incluso si contienen caracteres ocultos). Este breve guión no sólo elimina las líneas en blanco, pero genera un archivo Perl que es compacto y listo para su uso.

Instrucciones

1 Utilice la siguiente secuencia de comandos por sí mismo o agregarlo como parte de un guión más grande. Escriba en cada línea en los siguientes pasos seguidos por la tecla Intro.

2 ARCHIVO abierta, "filename.ext" o morir "$! \ N";

Esta línea se abre el archivo que tiene las líneas en blanco que desea eliminar. La 'o morir "$! \ N" "comando le indica al guión que si hay un error para detener la secuencia de comandos e imprimir el error.

3 se abren ", tempfile $$." o morir "$! \ n";

Esta línea crea un archivo temporal para almacenar los resultados.

4 while (<ARCHIVO>) {

Esta línea crea el inicio del bucle que hace todo el trabajo. El "tiempo" orden le dice al sistema que mientras hay otra línea en el archivo del código dentro del {y} necesita ser ejecutado.

5 después si / ^ \ s * $ /;

Este texto dice para probar la línea de que el guión está mirando para ver si sólo contiene caracteres de espacio en blanco como una ficha o un espacio. El "/ ^ \ s * $ /" es la prueba. Si eso es todo lo que esta línea contiene a continuación, ejecutar el comando "siguiente", que cuenta la secuencia de comandos para volver a la "while (<ARCHIVO>) {" línea para obtener la siguiente línea en el archivo sin que nada se escribe en el archivo temporal .

6 Imprima, $ _;
}

Dado que no se ha ejecutado el comando "siguiente", entonces la línea no debe estar vacío. Por lo tanto, esta línea envía la información a imprimir en el archivo temporal. El "}" es parte del contenedor para el bucle que creó usando "tiempo". Cuando el script se encuentra con él, el guión volverá a la orden ", mientras que" y tratar de conseguir otra línea objeto de prueba. Si no hay más líneas en el archivo, a continuación, el bucle se abandona y el guión pasará al siguiente comando.

7 Cerrar archivo; cerrar;

Después no hay más líneas que necesitan ser comprobado estos dos órdenes de cierre tanto el archivo original y el archivo temporal que se creó, lo que significa que los archivos ya no se pueden editar.

8 cambiar el nombre ( "filename.ext", "nombre.bak")
o morir "Error en el cambio de nombre: $! \ n";

Esta línea cambia el nombre del archivo original que nombre.bak por lo que se puede mantener si se necesita de nuevo.

9 cambiar el nombre ( "archivo temporal. $$", "filename.ext")
o morir "Error en el cambio de nombre: $!";

Esta línea cambia el nombre del archivo temporal que ha creado para el nombre de su archivo original, sobrescribiendo el archivo original con el nuevo archivo.

La secuencia de comandos completa debe tener este aspecto:

ARCHIVO abierta, "filename.ext" o morir "$! \ N";
se abren ", tempfile $$." o morir "$! \ n";
while (<ARCHIVO>) {
después si / ^ \ s * $ /;
Imprima, $ _;
}
Cerrar archivo; cerrar;
cambiar el nombre ( "filename.ext", "nombre.bak")
o morir "Error en el cambio de nombre: $! \ n";
cambiar el nombre ( "archivo temporal. $$", "filename.ext")
o morir "Error en el cambio de nombre: $!";

Consejos y advertencias

  • Los nombres de los ficheros pueden tener información de la ruta añadido a ellos como "/this/is/the/path/filename.ext" Esto es por lo que el guión no tiene que ser colocado en la misma carpeta que el archivo que se va a trabajar .Si algo sucede al archivo recién creado simplemente cambiar el nombre del archivo de copia de seguridad de "nombre.bak" a "filename.ext" para volver de nuevo al archivo original.
  • Asegúrese de que usted realmente necesita para eliminar las líneas del archivo. De lo contrario, el archivo puede llegar a ser inútil.