Insertar una cadena al final justo antes de la última línea de un archivo mediante sed

Este contenido sólo se encuentra disponible para miembros premium.
Si deseas hacerte premium, envíanos un mail a registro@algodelinux.com y te informaremos.
This Article Has 9 Comments
  1. Anónimo

    Creo que es mas sencillo con echo 'cadena' >> archivo

    Saludos cordiales.

  2. Esteban M. Navas Martín

    No es lo mismo. Se trata de insertar una cadena justo antes de la última línea. Lo que tú dices añade la cadena al final del archivo.

  3. Anónimo

    hola amigo, me gusto mucho tu solucion. Mira yo tengo que hacer algo similar. Haber si me puedes hechar una manito. tengo un archivo que contiene cadenas como estas:
    qwieqwehqwbr
    123ihodohiohfhiosaf
    q3qwedwadj
    2313ejwd
    332rjijfhdshfhsfiifhdhihi
    12312ewqdfer44fff
    gfdgdfg
    ewre
    yy yo necesito insertar o mas bien dicho concatenar una cadena fija en cada linea del tipo 123ert213 para que el archivo me quede asi

    qwieqwehqwbr 123ert213
    123ihodohiohfhiosaf 123ert213
    q3qwedwadj 123ert213
    2313ejwd 123ert213
    332rjijfhdshfhsfiifhdhihi 123ert213
    12312ewqdfer44fff 123ert213
    gfdgdfg 123ert213
    ewre 123ert213
    y la verdad no he encontrado la forma de hacerlo. agradeceria tu ayuda. saludos

  4. Esteban M. Navas Martín

    Eso es muy sencillo. Tan sólo tienes que utilizar sed de la siguiente manera:

    sed 's/$/ 123ert213/g' fichero

    Y si quieres que el contenido se inserte directamente en el archivo, utiliza el parámetro -i:

    sed -i 's/$/ 123ert213/g' fichero

  5. Esteban M. Navas Martín

    Y si quisieras insertar la cadena al principio del fichero, en lugar de hacerlo al final:

    sed -i 's/^/123ert213 /g' fichero

  6. beita

    Buenos días,

    Estoy buscando hacer algo parecido. Tengo un archivo con direcciones ftp:
    ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/001/932/555/GCA_001932555.1_ASM193255v1
    ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/196/795/GCA_000196795.1_ASM19679v1

    Para poder descargarme los archivos tendría que añadir al final de cada línea, parte de esa linea y concatenarlo con esta string "_genomic.fna.gz". El resultado sería el siguiente:

    ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/001/932/555/GCA_001932555.1_ASM193255v1/GCA_001932555.1_ASM193255v1__genomic.fna.gz

    Entiendo la parte en la que se añade _genomic.fna.gz porque sería igual que el ejemplo que has explicado pero no sabría como indicarle que tiene que copiar desde / hacia adelante.

    Cualquier ayuda será bienvenida

    Muchas gracias

    Beatriz

  7. Esteban M. Navas Martín

    Hola, Beatriz. No entiendo qué quieres decir que no sabrías como indicarle que tiene que copiar desde / hacia adelante… Por el ejemplo que pones, tan sólo tienes que reeemplazar el final de cada línea ($) con el texto "_genomic.fna.gz" y eso es algo tan sencillo como hacer lo siguiente:
    sed -i 's/$/_genomic.fna.gz/g' archivodireccionesftp

  8. Anónimo

    hola buenas tardes si quiero insertar en un archivo al final de cada linea los números del 1 al 100 es decir numerar las lineas pero a la izquierda.

    necesito insertar números que no se repitan al final de cada linea, por ejemplo

    /home/test/archivo
    /home/test/archivo
    /home/test/archivo
    /home/test/archivo

    y necesito agregar al final de cada un los numero empezando por el 1 hasta que se acaben las lineas

    /home/test/archivo1
    /home/test/archivo2
    /home/test/archivo3
    /home/test/archivo4

    y que quede así pero no veo la manera me pueden ayudar por favor

  9. Esteban M. Navas Martín

    Hazlo con awk:

    awk '{ print $0 NR }' fichero