¿Cómo puedo usar las herramientas de procesamiento de texto para insertar una nueva línea después de cada N líneas?
Ejemplo para N = 2:
ENTRADA:
sadf
asdf
yxcv
cxv
eqrt
asdf
SALIDA:
sadf
asdf
yxcv
cxv
eqrt
asdf
text-processing
LanceBaynes
fuente
fuente

[[ ]]hacer la prueba:while read line; do echo "$line"; ((lines++ % 2)) && echo; done.sed '0~2 a\ 'agrega un espacio a cada nueva línea insertada. Si desea agregar un salto de línea después de cada línea, ninguno de estos trabajos de manera similar:sed '0~1 a\ ',sed 'a\ 'o simplementesed G.Utilizando
pastefuente
... es todo lo que necesitas ...
Por ejemplo:
SALIDA:
... (y un espacio en blanco sigue al 6 también) ... o ...
SALIDA:
(y ningún espacio en blanco sigue a los 5)
Si siempre se debe omitir un espacio en blanco en un caso de última línea:
fuente
Otro sabor awk:
fuente
sed (GNU)
Con (GNU)
sed:Corto (feo para N = 100):
Man sed explica ~ como:
sed (otro)
Con otros sed (Cuenta nuevas líneas):
O, para ser más portátil, escrito como (eliminar comentarios para algunas versiones de sed):
awk
Con
awk, probablemente:fuente