GNU/Linux >> Linux Esercitazione >  >> Linux

Bash:aggiunge una stringa alla fine del file senza interruzioni di riga

sed '$s/$/yourText2/' list.txt > _list.txt_ && mv -- _list.txt_ list.txt

Se il tuo sed l'implementazione supporta -i opzione, puoi usare:

sed -i.bck '$s/$/yourText2/' list.txt

Con la seconda soluzione avrai anche un backup (con la prima dovrai farlo manualmente).

In alternativa:

ex -sc 's/$/yourText2/|w|q' list.txt 

o

perl -i.bck -pe's/$/yourText2/ if eof' list.txt

Basta usare printf invece, poiché non stampa la nuova riga per impostazione predefinita:

printf "final line" >> file

Prova

Creiamo un file e quindi aggiungiamo una riga in più senza una nuova riga finale. Nota che uso cat -vet per vedere le nuove linee.

$ seq 2 > file
$ cat -vet file
1$
2$
$ printf "the end" >> file
$ cat -vet file
1$
2$
the end

Puoi usare il parametro -n di echo. In questo modo:

$ touch a.txt
$ echo -n "A" >> a.txt
$ echo -n "B" >> a.txt
$ echo -n "C" >> a.txt
$ cat a.txt
ABC

EDIT:Aha, avevi già un file contenente string e newline. Bene, lo lascerò comunque qui, potremmo essere utili a qualcuno.


Linux
  1. Il Bash '?

  2. Aggiungere del testo alla fine del nome del file?

  3. Vai all'inizio o alla fine del file in Vim [Suggerimento rapido]

  4. Ciclo del contenuto di un file in Bash

  5. Aggiungi una stringa di prefisso all'inizio di ogni riga

Come leggere un file riga per riga in Bash

Sostituzione di String in Bash

Aggiungi colonna alla fine del file CSV utilizzando 'awk' nello script BASH

Forzare bash a espandere le variabili in una stringa caricata da un file

Come posso anteporre una stringa all'inizio di ogni riga in un file?

Linux:grep da determinate righe alla fine del file