lines=$( wc -l A.txt ) ; printf "Some Text | %s\n" ${lines%% *} > B.txt ; cat A.txt >> B.txt
La salida de wc
incluye el nombre del archivo, por lo que debe eliminarse, lo que se hace utilizando la función de eliminación de sufijos nativa del shell ${var%%glob}
.
Tengo una preferencia personal por usar de forma predeterminada printf
en lugar de echo
porque echo
tiene casos en los que se comporta mal.
Realizar la redirección de salida dos veces garantiza que el archivo de salida no incluya datos de una ejecución anterior de la línea -; la primera redirección >
sobrescribe cualquier versión anterior.