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.