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.