Insira certo texto ao comezo ou ao final dun ficheiro con sed, expresións regulares

En certas ocasións necesitamos inserir no final dun ficheiro un texto, para iso podemos empregar eco:

echo "Texto al final del archivo" >> archivo.txt

Pero que facer se quero inserir o texto ao iniciar?

Con sed e os parámetros correctos podemos facer isto e moito máis.

Por exemplo, para inserir no iniciación dun ficheiro un texto sería:

sed -i '1i Aqui texto que ira en la primera linea' archivo.txt

Mentres inserir no final é a seguinte:

sed -i '$a Aqui el texto que ira en la ultima linea' archivo.txt

Ou o eco de toda a vida:

echo "Aqui el texto que ira en la ultima linea" >> archivo.txt

Ben, nada máis que engadir, é unha publicación bastante curta.

Espero que sexa útil para alguén, saúdos.


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

18 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado.

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   O_Pixote_O dixo

    Se isto é curto se xD. Cando teña máis tempo terei que investigar máis o comando sed, creo que sería útil para un proxecto.

    1.    KZKG ^ Gaara dixo
  2.   usemos linux dixo

    ahh ... que sede! 🙂
    charlatán!

  3.   44 dixo

    estes trucos son os mellores ... son precisos e precisos ... publicar máis

    1.    KZKG ^ Gaara dixo

      Grazas
      Aínda teño algo máis na manga, espero poder poñelos pouco a pouco.

  4.   Nabucodonosor dixo

    Como sempre bo consello.
    Non pensou (e non é unha broma) reunir todos os consellos e tutoriais sobre a xestión de terminales dun sistema que compartiu connosco e desenvolver un manual con el?
    Sería moi, moi benvido na comunidade de usuarios non profesionais de Linux tendo en conta que o noventa por cento dos tutoriais e manuais sobre o tema, incluso nos niveis básicos, están principalmente en inglés.
    É unha boa idea.

    1.    KZKG ^ Gaara dixo

      É unha idea excelente, o problema é que ... non sei, non son moi bo en titoriais ou manuais extensos, cústame facelos 🙁

  5.   Joaquín dixo

    Bo consello!

  6.   Mario Guillermo Zavala Silva dixo

    Moitas grazas pola información ... Un saúdo

  7.   vidagnu dixo

    Excelente consello, quédome co meu vello eco jajaja

  8.   Ignacio dixo

    Un tetris programado co comando sed. Incrible, non!

    http://uuner.doslash.org/forfun/sedtris.sed

  9.   marioloko dixo

    Son novo en Linux, pero nos scripts uso moito o comando sed, a opción de substituír unha liña específica tamén está ben:
    sed –in-place "(número de liña) c \ (Texto que queremos substituír nesa liña)"

  10.   Mauricio dixo

    Grazas!

  11.   Isma dixo

    Se no canto de gardar un texto ao final do ficheiro, o que queremos é gardar o resultado dun comando ao final do ficheiro, como sería?

    grazas

  12.   ac dixo

    E se quero engadir un comando (no canto dun simple texto) que conteña if, echo, etc, a un ficheiro, ou engadir unha función ou un alias ????????
    grazas

  13.   Cambiador dixo

    Con sed tamén pode inserir unha ou máis liñas en calquera parte do texto como se pode ver no seguinte exemplo:
    $ echo -en "una linea\notra linea"
    una linea
    otra linea

    $ echo -en "una linea\notra linea" | sed '2i Aquí texto que ira en\n medio de las lineas'
    una linea
    Aquí texto que ira en
    medio de las lineas
    otra linea

    1.    Slash dixo

      O poderoso \ n 😀

  14.   Jhon dixo

    e se necesito inserir comiñas dentro dese texto ???

bool (verdadeiro)