es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo agregar líneas al inicio de un archivo, ya sea vacío o no?

Quiero agregar líneas al principio del archivo, funciona con:

sed -i '1s/^/#INFO\tFORMAT\tunknown\n/' file
sed -i '1s/^/##phasing=none\n/' file

Sin embargo, no funciona cuando mi archivo está vacío. Encontré estos comandos:

echo > file && sed '1s/^/#INFO\tFORMAT\tunknown\n/' -i file

echo > file && sed '1s/^/##phasing=none\n/' -i file

Pero el último borra el primero (y también si el archivo no está vacío)

Me gustaría saber cómo agregar líneas al principio del archivo ya sea que el archivo esté vacío o no.

Intenté un bucle con if [ -s file ] pero sin éxito.

¡Gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar líneas al principio de un archivo sin importar si está vacío o no, puedes utilizar el siguiente comando:

    sed -i '1i\
    #INFO\tFORMAT\tunknown\n\
    ##phasing=none
    ' archivo
    

    Este comando utiliza el comando i para insertar las líneas deseadas al principio del archivo, sin importar si ya hay líneas existentes o no. El comando i es seguido de una barra invertida para indicar que la siguiente línea contiene el texto a ser insertado. El texto a ser insertado se proporciona en líneas separadas.

    Este enfoque debería funcionar tanto para archivos vacíos como para archivos que ya tienen contenido.

Comments are closed.