É possível excluir a última linha de um arquivo usando um comando?

1

Eu acidentalmente distribui uma linha para / etc / crontab em muitos servidores e notei que há um erro de digitação nesta linha e preciso alterá-la em todos os servidores.

    
por Itai Ganot 17.10.2012 / 12:23

5 respostas

3

Outra opção é corrigir o erro de digitação, em vez de excluir apenas a última linha

sed -i '$ s/typotext/correcttext/ /var/spool/cron/user

Você deve ser capaz de editar os arquivos crontab diretamente para versões mais recentes do cron, pois ele verifica se há alterações muito minuciosas.

    
por 17.10.2012 / 13:01
1

Se o seu sed for compatível com a edição no local,

sed -i '$d' file

se não, você precisará usar um comando composto como

cat file | sed '$d' > newfile; mv newfile file
    
por 17.10.2012 / 12:31
0

use head

user@host$ cat <<EOF > test.txt
1
2
3
4
EOF
user@host$ head -n -1 test.txt | sponge test.txt
user@host$ cat test.txt
1
2
3
user@host$
    
por 17.10.2012 / 16:38
0

Você pode usar o Vim no modo Ex:

ex -sc 'd|x' /etc/crobtab
  1. d excluir linha

  2. x salvar e sair

por 11.04.2016 / 00:01
-1

Veja este artigo do fórum no unix.com para a resposta:

link

sed -e '$ d' input.file > output.file

ou

head - $ (( wc -l file | awk '{print $1}' - 1)) arquivo

    
por 17.10.2012 / 12:28

Tags