GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash:Zeichenfolge ohne Zeilenumbruch am Ende der Datei hinzufügen

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

Wenn Ihr sed Implementierung unterstützt das -i Option, könnten Sie verwenden:

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

Mit der zweiten Lösung haben Sie auch ein Backup (bei der ersten müssen Sie es manuell machen).

Alternativ:

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

oder

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

Verwenden Sie einfach printf stattdessen, da es standardmäßig nicht die neue Zeile druckt:

printf "final line" >> file

Test

Lassen Sie uns eine Datei erstellen und dann eine zusätzliche Zeile ohne abschließende neue Zeile hinzufügen. Beachten Sie, dass ich cat -vet verwende um die neuen Zeilen zu sehen.

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

Sie können den Parameter -n von echo verwenden. So:

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

EDIT:Aha, Sie hatten bereits eine Datei mit Zeichenfolge und Zeilenumbruch. Nun, ich lasse das trotzdem hier, könnten wir für jemanden nützlich sein.


Linux
  1. So fügen Sie Textdateien unter Linux Zeilennummern hinzu

  2. Wie füge ich am Ende einer Datei einen Zeilenumbruch hinzu?

  3. Die Bash‘?

  4. Etwas Text am Ende des Dateinamens anhängen?

  5. Durchlaufen des Inhalts einer Datei in Bash

So lesen Sie eine Datei Zeile für Zeile in Bash

Ersetzen von Zeichenfolgen in Bash

Löschen Sie Leerzeichen in jedem Zeilenanfang der Datei mit bash

Fügen Sie mithilfe von „awk“ im BASH-Skript eine Spalte am Ende der CSV-Datei hinzu

Bash zwingen, Variablen in einem aus einer Datei geladenen String zu erweitern

Wie kann ich dem Anfang jeder Zeile in einer Datei eine Zeichenfolge voranstellen?