O comando awk funciona para mim. Eu sempre pensei que o awk exigia no mínimo um bloco {...}. É bom saber que você não. É o primeiro comando não trivial do awk que eu estou trabalhando!
the_velour_fog
1
@the_velour_fog o bloco é obrigatório. se você não escrever um, AWK se comportará como se você tivesse escrito{ print $0 }
shadowtalker
@RKetkaew Qual das opções você usou? Se uma resposta resolver sua pergunta, clique no visto para marcar como resposta.
underscore_d
@underscore_d Olá, usei um comando sugerido pelo DarkHeart. Obrigado por seus comentários.
rangsiman
12
:2,$v/0$/d
exclui as linhas que não terminam 0a partir da segunda.
Essa é a solução inteligente. Eu apenas adicionaria uma explicação que 2,$é o intervalo e v/0$/do g!comando. Onde 0$está o regex e do comando ex que serão executados em todas as linhas que não correspondem.
:[range]d
por exemplo,:3,5d
exclui as linhas de três a cinco (inclusive).gsed -n '1p; 0~10p'
Respostas:
Se você quer manter 10 linhas e excluir o restante:
Explicação:
%
arquivo inteironorm
execute os seguintes comandos no "modo normal"9dd
excluir 9 linhasj
desça uma linha (ou seja, mantenha-a)nota: isso exclui a primeira linha.
Adaptado de http://www.rayninfo.co.uk/vimtips.html
Ou usando o comando global:
:g/^/+ d9
Adaptado de /programming/1946738/vim-how-to-delete-every-second-row
Ou você pode usar
awk
:fonte
{...}
. É bom saber que você não. É o primeiro comando não trivial do awk que eu estou trabalhando!{ print $0 }
exclui as linhas que não terminam
0
a partir da segunda.fonte
2,$
é o intervalo ev/0$/d
og!
comando. Onde0$
está o regex ed
o comando ex que serão executados em todas as linhas que não correspondem.