Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 8 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Lun Ene 24, 2011 3:37 pm
Mensajes: 2

Nota Publicado: Lun Ene 24, 2011 3:46 pm 
Arriba  
Como puedo construir un guion para que borre las líneas en blanco de un archivo de texto. El guion deberá comprobar:
a)Que se especifica un archivo. En caso contrario, se recuerda la sintaxis.
b)Si es especifica un nombre de archivo, comprobar que éste existe


Última edición por mcun el Lun Ene 24, 2011 6:18 pm, editado 1 vez en total
Mensaje movido por pertenecer mejor a esta temática, por favor revisa el reglamento

 Perfil Email  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Lun Ene 24, 2011 3:45 pm
Mensajes: 2

Nota Publicado: Lun Ene 24, 2011 3:55 pm 
Arriba  
vere que puedo hacer. en unos dia te respondo.

 Perfil Email  

Desconectado
Forista Medio
Forista Medio

Registrado: Vie Dic 31, 2010 6:40 pm
Mensajes: 297
Ubicación: Peru

Nota Publicado: Lun Ene 24, 2011 5:58 pm 
Arriba  
usa tail , aprende como usarlo y as tu script

_________________
"Bañarse en pareja (ahorra agua y ayuda a producir niños ecológicos) =)"
http://o4-gml.blogspot.com/

 Perfil Email  

Desconectado
Forista Ancestral
Forista Ancestral
Avatar de Usuario

Registrado: Mié Abr 11, 2007 11:00 pm
Mensajes: 8550
Ubicación: tras la pantalla (...)

Nota Publicado: Mar Ene 25, 2011 4:39 am 
Arriba  
o4kley escribió:
usa tail , aprende como usarlo y as tu script


tail??? yo lo haria con grep o con sed. mira los manuales, porque se puede con los dos. solo hay que saber:
1. como "ve" sed el salto de linea doble
2. como hacer que grep detecte la linea vacia.

_________________
#446716

--Not me, guys. I read the Bash man page each day like a Jehovah's Witness reads the Bible. No wait, the Bash man page IS the bible. Excuse me...
(from comp.os.linux.misc)
[ DNFD ] - [ F4A ] - [ dotfiles ]

 Perfil Email WWW  

Desconectado
Ganador CSEL 2011
Ganador CSEL 2011
Avatar de Usuario

Registrado: Dom Dic 12, 2010 10:07 am
Mensajes: 313

Nota Publicado: Mar Ene 25, 2011 5:49 am 
Arriba  
Yo lo haria con PERL

Código:
#!/usr/bin/perl -w
use strict;

my $archivo=$ARGV[0];

if ($archivo && -f $archivo){
open ARCHIVO, "$ARGV[0]";
my @contenido=<ARCHIVO>;
close ARCHIVO;

foreach my $linea (@contenido){
$linea=~s/^\n//ig;
print $linea;
}
}
else
{
print "poner aqui mensaje que recuerda sintaxis";
}


Ojo que como esta hecho asi no más necesitas un operador de redirección para enviar el contenido modificado a un archivo, sino solo sale por pantalla, pero tampoco era la idea hacerte toda la tarea....

Salu2.

Por cierto, yo tampoco entiendo como hacerlo con Tail, pero yo de Bash se bien poco...

 Perfil Email WWW  

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Sab Dic 19, 2009 7:33 pm
Mensajes: 36

Nota Publicado: Mié Ene 26, 2011 9:40 pm 
Arriba  
Usando sed, un AND, un OR y una comprobación de archivo se puede hacer el script en una sola línea de 64 caracteres. Si tienes dudas con mucho gusto se aclararán, pero no pidas que te pongamos el script y ya.

_________________
Just feel the code...

 Perfil Email  

Desconectado
Forista Medio
Forista Medio

Registrado: Vie Dic 31, 2010 6:40 pm
Mensajes: 297
Ubicación: Peru

Nota Publicado: Jue Ene 27, 2011 9:47 am 
Arriba  
Perdon confunfi el comando , no volvera a pasar , para eso se usa sed

_________________
"Bañarse en pareja (ahorra agua y ayuda a producir niños ecológicos) =)"
http://o4-gml.blogspot.com/

 Perfil Email  

Desconectado
Miembro ETEL
Miembro ETEL
Avatar de Usuario

Registrado: Mié Dic 08, 2004 12:00 am
Mensajes: 526
Ubicación: BS. AS Argentina

Nota Publicado: Mié Feb 09, 2011 12:54 pm 
Arriba  
Por "Guion" hablas de script??

La validación y el reemplazo puedes hacerlos con un simple if/elif/else/fi. No soy programador, así que no me vengan con imaginación ni nada de eso, pero oye, leyendo paginas man, buscando algún manual de bash y preguntando a Google lo podías sacar en menos tiempo de lo que se tarda en responderte en un foro.

Una ayuda: con -eq puedes verificar si se indico algun parametro: if [[ $# -eq 0 ]]
Con -gt puedes verificar si agrego mas de un parámetro, lo cual esta mal ya que tu script seguro no contemplara editar mas de un archivo: [[ $# -gt 1 ]]
Con [[ -r $1 ]] verificara si existe el archivo y es legible

y para reemplazar los espacios, basta con sed 's/ //g' $1 > $1-sinespacios

No recuerdo como, pero en vez de sed, podes usar vi para editar al vuelo

EDIT: Perdon, la flashie pense que querias borrar espacio y no lineas en blanco. Para borrar lineas en blanco con sed es: sed '/^$/d'

_________________
Saludos.
Matías S. Sardisco | http://msardisco.com.ar


$ emerge --info | head -n3
Portage 2.1.9.34 (default/linux/x86/10.0, gcc-4.5.2, glibc-2.12.2-r0, 2.6.37-ck i686)
=================================================================
System uname: Linux-2.6.37-ck-i686-Intel-R-_Atom-TM-_CPU_N270_@_1.60GHz-with-gentoo-2.0.1

 Perfil WWW  
Mostrar mensajes previos:  Ordenar por  
 [ 8 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO