Uživatelé příkazového řádku Linuxu znají koncept operátorů přesměrování, které mohou zapisovat výstup do souboru nebo číst vstup ze souboru.
Operátor '>'
zapíše výstup do nového souboru nebo do existujícího souboru; v takovém případě smaže vše, co je dříve v souboru přítomno. Operátor '>>'
na druhou stranu připojí výstup na konec existujícího souboru. Neexistuje však žádný vyhrazený operátor pro zápis nového textu na začátek souboru.
Dnes uvidíme dva způsoby, jak přidat text na začátek souboru v Linuxu:jeden s náhradním řešením a jeden s příkazem.
Poznámka :Je dobrý přístup nejprve zálohovat původní soubor a poté k původnímu souboru připojit nový text. Tímto způsobem, pokud při používání příkazů dojde k nějaké chybě, můžeme vždy obnovit záložní soubor. Např. Můžete jednoduše zkopírovat soubor s názvem „file1 “ do jiného souboru s názvem „file1_bkp “ a poté připojte text k originálu, tj. „soubor1 '.Přidat text na začátek souboru pomocí příkazů echo a cat
Jak možná víte, příkaz echo vypíše vše, co je předáno jako argument do výstupu, zatímco příkaz cat vytiskne obsah souboru na výstup.
Můžeme tak předat nový text k přidání do echa , předejte soubor kočce, zkombinujte a zapište výstup do souboru. To lze provést následovně:
$ x=`echo "New Text"; cat filename` $ echo "$x" > filename
V zásadě kombinujeme nový text a stávající obsah souboru a ukládáme nový obsah do proměnné. Pak jednoduše vypíšeme proměnnou a přesměrujeme ji do stejného souboru.
$ cat samplefile.txt $ x=`echo "Name: John"; cat samplefile.txt` $ cat samplefile.txt
Jak můžete vidět výše, nový text byl přidán na nový řádek na začátek souboru. Chcete-li přidat text na začátek existujícího prvního řádku, použijte -n
argument echa.
$ x=`echo -n "New Text"; cat filename` $ echo "$x" > filenameVšimněte si, že ačkoli Bash nebo mnoho dalších shellů nemá omezení velikosti proměnné, nicméně velikost může být omezena na základě prostředí a konfigurace systému. Může tedy nastat situace, kdy „samplefile.txt “ je soubor obsahující obrovské množství dat a proměnná je nedokáže všechna uložit.
Přidat text do prvního řádku souboru pomocí příkazu sed
sed (zkratka pro „Editor streamu ‘) je editor příkazového řádku v Linuxu, který se používá k provádění operací, jako je psaní textu do souboru, hledání a nahrazování atd.
sed je komplexní příkaz se spoustou možností pro úpravu souborů různými způsoby. K přidání textu na začátek souboru použijeme konkrétní funkce sed.
Pro vložení textu na nový řádek na začátek spusťte následující.
$ sed -i '1i New Text' filename
-i
argument říká sed k úpravě samotného souboru. Bez něj sed automaticky vytvoří kopii souboru a provede všechny úpravy na kopii.
Řetězec ‘1i Nový text‘ znamená:‘vložit’ řetězec ‘Nový text’ dne ‚1.‘ řádek.
$ cat samplefile.txt $ sed -i '1i Introduction' samplefile.txt $ $ cat samplefile.txt
Opět se jedná o přidání nového obsahu na nový řádek na začátku. Chcete-li přidat nový text na existující řádek, spusťte:
$ sed -i '1s/^/New Text/' filename
V podstatě exponent (‘^’)
znamená nulový řetězec. '1'
na začátku znamená, že sed by měl vzít v úvahu řetězec null na začátku řádku 1 a 's'
je sed příkaz k nahrazení řetězce. Zde je prázdný řetězec nahrazen výrazem „Nový text ‘.
$ cat samplefile.txt $ sed -i '1s/^/Person/' samplefile.txt $ cat samplefile.txt
Závěr
Naučili jsme se dva jednoduché, ale chytlavé způsoby, jak přidat nový text na začátek souboru v Linuxu. Samozřejmě, zřejmý způsob, jak toho dosáhnout, pokud to má být provedeno ručně, je upravit soubor pomocí editoru souborů. Ve skriptu však lze použít metody popsané zde.
Děkujeme za přečtení a dejte nám vědět své myšlenky v komentářích níže!