GNU/Linux >> Linux Esercitazione >  >> Linux

Come inserire del testo prima della prima riga di un file?

Mi sono guardato intorno sed comando per aggiungere testo a un file in una riga specifica.
Funziona aggiungendo testo dopo la riga 1:

sed '1 a

Ma voglio aggiungerlo prima riga 1. Sarebbe:

sed '0 a

ma ottengo questo errore:invalid usage of line address 0 .

Qualche suggerimento?

Risposta accettata:

Usa sed 's inserisce (i ) opzione che inserirà il testo nella riga precedente.

sed '1 i

Aggiornamento dell'autore della domanda:

Per farlo, modifica il file sul posto – con GNU sed – Ho dovuto aggiungere il -i opzione:

sed -i '1 ianything' file

Anche la sintassi

sed  -i '1i text' filename

Per versioni non GNU

Devi premere il tasto Invio subito dopo la barra rovesciata 1i e dopo first_line_text :

sed -i '1i
first_line_text
'

Nota anche che alcuni sed non GNU implementazioni (ad esempio quella su macOS) richiedono un argomento per -i flag (usa -i '' per ottenere lo stesso effetto di GNU sed ).

Per sed implementazioni che non supportano -i eseguire senza questa opzione ma reindirizzare l'output a un nuovo file. Quindi sostituisci il vecchio file con il file appena creato.


Linux
  1. Uso avanzato del visualizzatore di file con meno testo in Linux

  2. Manipolazione del testo da riga di comando con sed

  3. Come inserire del testo all'inizio di ogni riga in Vim

  4. Come eliminare le prime N righe di un file Ascii utilizzando i comandi della shell?

  5. Elimina i primi cinque caratteri su qualsiasi riga di un file di testo in Linux con sed

Come aggiungere testo all'inizio del file in Linux

Come sostituire il testo come sed con python?

Come inserire un testo all'inizio di un file?

sed da inserire solo alla prima corrispondenza

lo script bash aggiunge il testo alla prima riga di un file

Come leggere l'ultima riga di un file di testo in una variabile usando Bash?