Tengo un montón de resultados pasando por sed y awk.
¿Cómo puedo prefijar la salida con START y sufijo la respuesta con END?
Por ejemplo, si tengo
All this code
on all these lines
and all these
¿Cómo podría obtener:
START
All this code
on all these lines
and all these
END
?
Mi intento fue:
awk '{print "START";print;print "END"}'
pero tengo
...
START
All this code
END
START
on all these lines
END
START
and all these
END
text-processing
sed
awk
regular-expression
Michael Durrant
fuente
fuente
Respuestas:
Esto funciona, como lo indica jasonwryan :
fuente
Esto se puede hacer
sed
con1i
medios i nsert antes de la línea 1;$a
significa un ppend después de la última línea. La$'…'
sintaxis es específica de bash. En otros shells, deberías poder hacer esto con:fuente
Si ya está usando sed, puede usar
1
para hacer coincidir la primera línea y$
para hacer coincidir la última línea (vea la respuesta de Scott ). Si ya está usando awk, puede usar unBEGIN
bloque para ejecutar código antes de la primera línea y unEND
bloque para ejecutar código después de la última línea (vea la respuesta de Michael Durrant ).Si todo lo que necesita hacer es agregar un encabezado y un pie de página, simplemente use
echo
ycat
.En una tubería, para ejecutar múltiples comandos, use
{ … }
para decirle al analizador que son un solo comando compuesto.fuente