• Lunes 23 de Diciembre de 2024, 17:22

Autor Tema:  SCript BAsh  (Leído 2833 veces)

xrebeldex

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
SCript BAsh
« en: Viernes 9 de Julio de 2010, 12:08 »
0
Holaa, bueno queria pediros un favor, esque tengo que crear un script que haga lo siguiente...
1.- Entra por pantalla un texto por ejemplo  asi:

----------------------cuerpo del fichero  ----------------------------------
este es el fichero de ejemplo
es un fichero de texto plano     que tiene varias
lineas y por linea diferente cantidad de caracteres y espacios en blanco

---------------------------------------------------------------------------------------------

Bueno, quiero que el script pase por el fichero y lo deje con un maximo de 13 caracteres por lìnea y respetando los saltos de linea, deberia quedar asi:

---------------------fichero   resultante -------------------------------------------
este es el fi
chero de ejem
plo
es un fichero
 de texto pla
no     que ti
ene varias
lineas y por
linea diferen
te cantidad d
e caracteres
y espacios en
 blanco

---------------------------------------------------------------------------------------------

Es decir, que cada linea tengo como maximo 13 caracteres de longitud, contanto los espacios en blanco... ahy alguna manera de hacerlo en bash ????

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: SCript BAsh
« Respuesta #1 en: Viernes 9 de Julio de 2010, 20:10 »
0
Si que se pude, una forma es hacerlo con tr.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

xrebeldex

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: SCript BAsh
« Respuesta #2 en: Viernes 9 de Julio de 2010, 20:16 »
0
claro estoy seguro que se puede ....

el problema esque no se como hacerlo, lo eh intentado con un for sobre un od -c contando carateres pero no me cuenta los saltos de linea, vamos que no eh podido, ademas ... tr sustituye ... si puedes ponerme un ejemplo ...  esque serua mas facil hacer enter xD ... pero los ficheros de texto que procesamos tienen hasta 20 megas de solo texto ... es decir ... o se automatiza o seria inviable ...

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: SCript BAsh
« Respuesta #3 en: Sábado 10 de Julio de 2010, 20:29 »
0
Código: Bash
  1. man tr; man paste; man sed
  2.  
Código: Bash
  1. tr -d 'n' < /path/fichero
  2.  
Código: Bash
  1. paste -s -d "" fichero
  2.  

Mas ejemplos:
http://linux.dsplabs.com.au/rmnl-remove ... -ssam-p65/
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

xrebeldex

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: SCript BAsh
« Respuesta #4 en: Sábado 17 de Julio de 2010, 05:51 »
0
hola, gracias pero lo que estas haciendo en esos casos ( y en los del post ) es quitando el salto de linea, yo lo que quiero es agregarlo.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: SCript BAsh
« Respuesta #5 en: Jueves 22 de Julio de 2010, 02:06 »
0
:nosweat: Cierto.
En Bash se puede hacer:
Código: Bash
  1. #!/bin/bash
  2. while read -n13 string; do
  3.     echo $string >> salida.txt
  4. done < fichero.txt
  5.  

En Perl:
Código: Perl
  1. #!/usr/bin/perl
  2. use strict;
  3. open IN, "mi_fichero.txt" or die "Error entrada: $!n";
  4. open OUT, "+>mi_salida.txt" or die "Error salida: $!n";
  5. my $buffer;
  6. while ( read(IN, $buffer, 13) != 0 ) {
  7.     print OUT "$buffern";
  8. }
  9. close OUT;
  10. close IN;
  11.  
  12.  
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.