Vi editor: Qual é o caminho mais rápido para excluir várias linhas em um arquivo?

11

Gostaria de usar o editor Vi para excluir várias linhas em um arquivo. Por favor, me dê uma ideia ou sugestão.

Meu objetivo é assim:

Antes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.
.
29
30
.
.

Depois;

1
10
20
30
40
.
.
    
por rangsiman 16.07.2016 / 07:21

2 respostas

17

Se você quer dizer que deseja manter todas as 10 linhas e excluir o resto:

%norm 9ddj

Explicação:

% arquivo inteiro

norm executa os seguintes comandos no "modo normal"

9dd delete 9 linhas

j mova uma linha para baixo (ou seja, mantenha-a)

nota: isso exclui a primeira linha.

Adaptado do link

Ou usando o comando global:

  • Duplique a primeira linha g g Y P
  • :g/^/+ d9

Adaptado de link

Ou você pode usar awk :

%!awk 'NR \% 10 == 0 || NR == 1'
    
por 16.07.2016 / 09:25
12
:2,$v/0$/d

exclui as linhas que não terminam em 0 a partir do segundo.

    
por 16.07.2016 / 13:38

Tags