Como eu excluo as últimas n linhas de um arquivo ASCII usando comandos shell? [duplicado]

2
    

Esta pergunta já tem uma resposta aqui:

    

Como eu excluo as últimas n linhas de um arquivo ascii usando comandos shell?

    
por user137256 06.10.2015 / 13:56

3 respostas

7

Com head (remove as últimas duas linhas):

head -n -2 file

Com sed / tac (remove as últimas duas linhas):

tac file | sed "1,2d" | tac

tac inverte o arquivo, sed exclui ( d ) as linhas 1 a 2 ( 2 pode ser qualquer número).

    
por 06.10.2015 / 14:03
0

Dê uma olhada na página manp para head - você pode especificar um número de linhas, e isso lhe dará muitas linhas de um arquivo.

head -10 filename 

Dá as primeiras 10 linhas de um arquivo. Se você não souber quanto tempo seu arquivo é, use wc -l para contar o número de linhas. Em seguida, use head para imprimir o número apropriado.

    
por 06.10.2015 / 14:03
-2
tac file| sed -i 'nd' | tac

tac inverte o arquivo, sed exclui (d) as linhas n números de linhas

    
por 06.10.2015 / 14:12