1 votos

Quitar Control devuelva y líneas de fusión en un solo texto archivo y limite el número de caracteres

Wan para quitar Control devuelva y unir las líneas en un texto archivo y limite el número de caracteres

Input.txt que contiene:

comment 1
comment 2 
...
comment n 

salida.txt debe uno cadenas:

comment 1 comment 2 ... commnet n

PERO el ouput.txt debe limitarse a es decir, 32 de caracteres:

comment 1 comment 2 comment 3 co

¿Puedo usar sed, awk tr u otra cosa?

1voto

David Foerster Puntos 6294
head -c 32 input.txt | tr '\n' ' ' > output.txt
  • head -c 32descarta todo pero los primeros 32 bytes.

  • tr '\n' ' 'reemplaza todos los caracteres de nueva línea con caracteres de espacio.

personajes bytes grep en su lugar:

tr '\n' ' ' < input.txt | grep -oEe '^.{,32}' > output.txt

0voto

Hi-Angel Puntos 198

Awk debe ser fino. Una forma es:

$ echo -n "comment 1\rcomment 2\r...\rcomment n\r" > input.txt
$ cat input.txt | awk -v FS="" -v RS="" '{for (i=1;i<=32;i++) printf ($i == "\r")? "" : $i}' > output.txt
$ cat output.txt 
comment 1comment 2...comment 

Explicación: por defecto awk los procesos de entrada de línea-por-línea, con una sola línea de llamada registro; cada línea de procesado de columna por columna, con una sola columna llamada campo. Cada campo se conoce por las variables a partir de 1, por ejemplo, $1, $2, $3...

Para cambiar el comportamiento predeterminado de configuración Famp Separator a "", causando awk para procesar cosas carácter por carácter. Luego, establece Record Separator a "" así que usted puede referir a personajes de todo el texto a la vez (es decir, sin necesidad de escribir un código para manejar las cosas, línea por línea).

Finalmente, usted puede fácilmente operar sobre los personajes, por lo que el bucle a través de los campos (es decir, caracteres), y de impresión sólo cuando el personaje no es un retorno de carro.

0voto

George Puntos 628
tr '\n' ' ' < in.txt | cut -c -32
  • tr '\n' ' ': sacar nuevas líneas de entrada de texto
  • cut -c -32: limitar la salida a 32 caracteres

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: