Věřím, že v OS X je při použití -i vyžadováno rozšíření pro záložní soubory . Zkuste:
sed -i .bak 's/hello/gbye/g' *
Pomocí GNU sed
rozšíření je volitelné .
Pokud použijete -i
musíte poskytnout rozšíření pro vaše zálohy.
Pokud máte:
File1.txt
File2.cfg
Příkaz (všimněte si nedostatku mezery mezi -i
a ''
a -e
aby to fungovalo na nových verzích Macu a GNU):
sed -i'.original' -e 's/old_link/new_link/g' *
Vytvořte 2 záložní soubory jako:
File1.txt.original
File2.cfg.original
Neexistuje žádný přenosný způsob, jak se vyhnout vytváření záložních souborů, protože je nemožné najít kombinaci příkazů sed, která by fungovala ve všech případech:
sed -i -e ...
- nefunguje na OS X, protože vytváří-e
zálohysed -i'' -e ...
- nefunguje na OS X 10.6, ale funguje na 10.9+sed -i '' -e ...
- nefunguje na GNU
Poznámka Vzhledem k tomu, že příkaz sed nefunguje na všech platformách, můžete zkusit použít jiný příkaz, abyste dosáhli stejného výsledku.
Např. perl -i -pe's/old_link/new_link/g' *
Spustit nedůvěryhodný program C v karanténě v Linuxu, která mu brání v otevírání souborů, větvení atd.?
pomocí linuxu, jak mohu předat obsah souboru jako parametr spustitelnému souboru?