Problema usando a cabeça para remover a última linha do arquivo [duplicado]

0

Recentemente, eu estava procurando uma maneira de remover a última linha de um arquivo foo.txt e encontrei a seguinte solução

head -n -1 foo.txt temp.txt; mv temp.txt foo.txt

que funciona bem. No entanto, eu também tentei simplesmente

head -n -1 foo.txt > foo.txt

que para minha surpresa deixou foo.txt um arquivo de texto vazio, e eu gostaria de saber o porquê.

Estou apenas começando com o unix, por isso é possível que a minha pergunta seja bastante boba.

    
por Étienne Bézout 11.04.2016 / 11:17

1 resposta

2

Porque o redirecionamento > acontece antes do restante do comando.

Se você quiser fazer uma edição inplace, precisará de um utilitário adequado. por exemplo. perl ou sed . (Ou apenas faça o mv como o snippet original sugerido)

    
por 11.04.2016 / 11:37

Tags