GNU/Linux >> Znalost Linux >  >> Linux

Bash:přidejte řetězec na konec souboru bez zalomení řádku

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

Pokud vaše sed implementace podporuje -i možnost, můžete použít:

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

S druhým řešením budete mít také zálohu (u prvního to budete muset udělat ručně).

Případně:

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

nebo

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

Stačí použít printf místo toho, protože nevytiskne nový řádek jako výchozí:

printf "final line" >> file

Test

Vytvořme soubor a pak přidejte další řádek bez dalšího nového řádku. Poznámka:Používám cat -vet abyste viděli nové řádky.

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

Můžete použít parametr -n echo. Takhle:

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

EDIT:Aha, už jste měli soubor obsahující řetězec a nový řádek. No, stejně to tady nechám, snad se to někomu bude hodit.


Linux
  1. Jak přidat čísla řádků do textových souborů v systému Linux

  2. Jak přidat nový řádek na konec souboru?

  3. Připojit nějaký text na konec názvu souboru?

  1. Přejít na začátek nebo konec souboru ve Vimu [Rychlý tip]

  2. Procházení obsahu souboru v Bash

  3. Přidejte předponu na začátek každého řádku

  1. Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

  2. Jak přidat řetězec data na každý řádek nepřetržitě zapisovaného souboru protokolu

  3. Jak číst předposlední řádek v souboru pomocí Bash?