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.