GNU/Linux >> Linux Esercitazione >  >> Linux

Come inserire un testo all'inizio di un file?

Se il file è solo una riga, puoi usare:

sed 's/^/insert this /' oldfile > newfile

Se è più di una riga. uno di:

sed '1s/^/insert this /' oldfile > newfile
sed '1,1s/^/insert this /' oldfile > newfile

Ho incluso quest'ultimo in modo che tu sappia come creare intervalli di linee. Entrambi "sostituiscono" il marcatore della linea di partenza sulle linee interessate con il testo che si desidera inserire. Puoi anche (supponendo che il tuo sed è abbastanza moderno) usa:

sed -i 'whatever command you choose' filename

per eseguire modifiche sul posto.


Se vuoi aggiungere una riga all'inizio di un file, devi aggiungere \n alla fine della stringa nella migliore soluzione sopra.

La soluzione migliore aggiungerà la stringa, ma con la stringa non aggiungerà una riga alla fine di un file.

sed -i '1s/^/your text\n/' file

Usa subshell:

echo "$(echo -n 'hello'; cat filename)" > filename

Sfortunatamente, la sostituzione del comando rimuoverà le nuove righe alla fine del file. Per mantenerli si può usare:

echo -n "hello" | cat - filename > /tmp/filename.tmp
mv /tmp/filename.tmp filename

Non è necessario né il raggruppamento né la sostituzione dei comandi.


sed può operare su un indirizzo:

$ sed -i '1s/^/<added text> /' file

Cos'è questo magico 1s vedi su ogni risposta qui? Indirizzamento di linea!.

Vuoi aggiungere <added text> nelle prime 10 righe?

$ sed -i '1,10s/^/<added text> /' file

Oppure puoi usare Command Grouping :

$ { echo -n '<added text> '; cat file; } >file.new
$ mv file{.new,}

Linux
  1. Come aggiungere una nuova riga alla fine di un file?

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

  3. Mostra tutto il file fino alla partita?

  4. Come sostituire il testo come sed con python?

  5. Come posso convogliare una chiamata di sottoprocesso a un file di testo?

Come aggiungere testo all'inizio del file in Linux

Come aggiungere l'output a un file?

Come posso aggiungere una stringa all'inizio di ogni file in una cartella in bash?

Come usare sed per rimuovere le ultime n righe di un file

Come salvare l'output di questo comando awk su file?

Come si aggiunge del testo a un file?