Isso não é possível no AIX mesmo com a ferramenta sed
instalada.
Você precisa usar um arquivo temporário como sugerido por terdon
Você também pode usar ed
, que faz a edição em linha.
Existe algum sinalizador não documentado na implementação do AIX que permite a edição no local? A página man não mostra nenhum sinalizador para esta operação, que é uma das mais úteis em outros sabores do UNIX.
Isso não é possível no AIX mesmo com a ferramenta sed
instalada.
Você precisa usar um arquivo temporário como sugerido por terdon
Você também pode usar ed
, que faz a edição em linha.
você pode usar perl
para fazer isso:
perl -p -i.bak -e 's/old/new/g' test.txt
Vai criar um arquivo .bak
.
Ou sem um arquivo .bak
:
perl -pi -e 's/old/new/g' test.txt
Ou instale sed-4.1.1
RPM de aqui .
Defina uma variável e use um subshell para executar sed
e redirecionar para um arquivo.
Muito importante use "
(aspas duplas) para proteger a variável $value
:
value=$(sed 's/old/new/g' file) && echo "$value" > file
Ou
Execute echo
com um subshell que você vai executar 'sed' e redirecione para um arquivo:
echo "$(sed 's/old/new/g' file)" > file