¿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
paste
fuente
... 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