O IMO, usando printf
para enviar comandos em ed
, é melhor que sed -i
.
printf '%s\n' 'g/,888,/d' 'w' | ed -s msalik.txt
O primeiro argumento a printf
diz para imprimir cada argumento restante separado por novas linhas ( \n
).
Nenhum dos dois últimos argumentos realmente precisam ser citados. Acabei de citá-los como exemplo - alguns comandos ed
precisarão ser citados.
Por que ed
é melhor que sed -i
?
Ao contrário de ed
, sed -i
não faz uma edição verdadeira no local. Ele cria um arquivo de saída temporário e renomeia o original. Isso tem dois efeitos colaterais potencialmente indesejados:
-
As permissões no arquivo podem mudar devido ao umask
com o qual o arquivo temporário foi criado. Até mesmo a propriedade ou grupo pode mudar se o script sed -i
for executado por um usuário diferente (que tenha acesso RW apropriado ao arquivo e à pasta, é claro).
-
O arquivo de substituição terá um inode diferente. Isso vai quebrar os links físicos.