El 2 de enero de 2019 20:03:31 CET, Matias Mucciolo <[email protected]> escribió: > >On Wednesday, January 2, 2019 7:53:42 PM -03 Ramses wrote: >> El 2 de enero de 2019 19:44:38 CET, Matias Mucciolo ><[email protected]> escribió: >> >> On Wednesday, January 2, 2019 6:39:15 PM -03 Ramses wrote: >> >> > Hola a tod@s y feliz año... >> >> > >> >> > Tengo un fichero de texto con líneas, entre otras tantas, que >> > >> >comienzan >> > >> >> > con: >> >> > >> >> > # P1 = >> >> > # P12 = >> >> > # P123 = >> >> > # P1234 = >> >> > >> >> > Donde cada dígito es variable entre 0 y 9, es decir, lo mismo te >> >> > encuentras >> >> > un '# P8' que un '# P5487', pero también te encuentras con >líneas >> > >> >que >> > >> >> > empiezan por '# P pepito'. >> >> > >> >> > Me gustaría saber si hay forma de cambiar con SED todas las >líneas >> > >> >que >> > >> >> > comienzan por: >> >> > >> >> > # P1 = >> >> > # P12 = >> >> > # P123 = >> >> > # P1234 = >> >> > >> >> > Y dejarlas comenzando así: >> >> > >> >> > P1 = >> >> > P12 = >> >> > P123 = >> >> > P1234 = >> >> > >> >> > Claro, manteniendo el resto de líneas del fichero tal cual >están, >> > >> >por >> > >> >> > ejemplo, las que comienzan por y el resto. >> >> > >> >> > >> >> > Saludos y gracias, >> >> > >> >> > Ramsés >> >> >> >> Buenas Ramses >> >> >> >> si esta todo bien como dijiste y tenes exactamente esas lineas >> >> con el siguiente sed podes "descomentar" las lineas >> >> que empiezas con "# PN" siendo N un numero del 0-9 >> >> >> >> sed: >> >> >> >> sed '/P[0-9]/s/# //g' >> >> >> >> ejemplo la linea '# P pepito' no se modifica... >> >> probalo y cualquier duda pregunta. >> >> o pone las lineas exactamente como son y cual falla.. >> >> >> >> saludos. >> >> Matias.- >> > >> >acomodo el sed se me paso la parte de "empieza por bla" >> > >> >sed '/^# P[0-9]/s/# //g' >> > >> >ahora si ... >> >saludos >> >Matias. >> >> Ha, bien, te estaba contestando a tu correo para comentarte que si no >> faltaba el ^. >> >> Ahora, está línea (sed '/^# P[0-9]/s/# //g') sustituiría las líneas >que >> comienzan, por ejemplo, por '# P8', pero como he comentado, ¿y para >las >> líneas que comienzan por '# P65', '# P756' o '# P 6548'? >> >> Es decir, las líneas pueden comenzar desde '# PN =' hasta '# PNNNN >='. >> >> >> Saludos y gracias, >> >> Ramsés > >Mientras no tengan espacio, es decir, '# P N' (que veo en tu pregunta >'# P 6548' ) serviria desde '# PN' hasta '# PNNNNNNNNNN(...)' >infinito. > >ahora si hay espacio...lo mas facil es correr este comando >y una segunda pasada con este otro: > >sed '/^# P [0-9]/s/# //g' > >y con esas dos pasadas se solucionaria. > >ejemplo: > >$ cat aa ># P1 = ># P12 = ># P123 = ># P1234 = ># P31234 = ># P pepito = ># P 6548 = >$ >$ cat aa | sed '/^# P[0-9]/s/# //g' | sed '/^# P [0-9]/s/# //g' >P1 = >P12 = >P123 = >P1234 = >P31234 = ># P pepito = >P 6548 = > > > >Saludos. >Matias
No, no, Matías, los números están pegados a la P, no hay espacios. Saludos, Ramsés

