GNU/Linux >> Znalost Linux >  >> Linux

Jak vložit text před první řádek souboru?

Rozhlížel jsem se kolem sed příkaz pro přidání textu do souboru na konkrétní řádek.
Toto funguje přidání textu za řádek 1:

sed '1 a

Ale chci to přidat před řádek 1. Bylo by to:

sed '0 a

ale dostávám tuto chybu:invalid usage of line address 0 .

Nějaký návrh?

Přijatá odpověď:

Použijte sed 's insert (i ), která vloží text na předchozí řádek.

sed '1 i

Aktualizace autora otázky:

Aby bylo možné upravit soubor na místě – pomocí GNU sed – Musel jsem přidat -i možnost:

sed -i '1 ianything' file

Také syntaxe

sed  -i '1i text' filename

Pro sed bez GNU

Ihned za zpětným lomítkem 1i musíte stisknout klávesu Return a za first_line_text :

sed -i '1i
first_line_text
'

Všimněte si také, že některé ne-GNU sed implementace (například ta na macOS) vyžadují argument pro -i příznak (použijte -i '' získat stejný efekt jako u GNU sed ).

Pro sed implementace, které nepodporují -i vůbec, spustit bez této možnosti, ale přesměrovat výstup do nového souboru. Poté nahraďte starý soubor nově vytvořeným souborem.


Linux
  1. Naučte se používat textový editor Sed

  2. Pokročilé použití prohlížeče méně textových souborů v Linuxu

  3. Manipulace s textem na příkazovém řádku pomocí sed

  1. Jak vložit text na začátek každého řádku ve Vimu

  2. Jak procházet řádky souboru?

  3. Jak analyzovat každý řádek textového souboru jako argument příkazu?

  1. Jak příkaz Sed ‚1!g;h;$!d‘ obrátí obsah souboru?

  2. Jak rozdělit soubor a zachovat první řádek v každém z kusů?

  3. Jak vložit text na začátek souboru?