El comando awk funciona para mí. Siempre pensé que awk requería un mínimo de un bloque {...}. Es bueno saber que no. ¡Es el primer comando awk no trivial que tengo funcionando!
the_velour_fog
1
@the_velour_fog se requiere el bloque . si no escribe uno, AWK se comportará como si hubiera escrito{ print $0 }
shadowtalker
@RKetkaew ¿Cuál de las opciones usaste? Si una respuesta resuelve su pregunta, haga clic en la marca para marcarla como la respuesta.
underscore_d
@underscore_d Hola, utilicé un comando sugerido de DarkHeart. Gracias por tus comentarios.
rangsiman
12
:2,$v/0$/d
elimina las líneas que no terminan 0comenzando desde la segunda.
Esta, esta es la solución inteligente. Simplemente agregaría una explicación que 2,$es el rango y v/0$/del g!comando. ¿Dónde 0$está la expresión regular y del comando ex que se ejecutará en todas las líneas que no coinciden?
:[range]d
por ejemplo,:3,5d
elimina las líneas tres a cinco (inclusive).gsed -n '1p; 0~10p'
Respuestas:
Si quiere decir que desea conservar cada décima línea y eliminar el resto:
Explicación:
%
archivo completonorm
ejecutar los siguientes comandos en "modo normal"9dd
eliminar 9 líneasj
moverse hacia abajo una línea (es decir, mantenerla)nota: esto elimina la primera fila.
Adaptado de http://www.rayninfo.co.uk/vimtips.html
O usando el comando global:
:g/^/+ d9
Adaptado de /programming/1946738/vim-how-to-delete-every-second-row
O podrías usar
awk
:fuente
{...}
. Es bueno saber que no. ¡Es el primer comando awk no trivial que tengo funcionando!{ print $0 }
elimina las líneas que no terminan
0
comenzando desde la segunda.fuente
2,$
es el rango yv/0$/d
elg!
comando. ¿Dónde0$
está la expresión regular yd
el comando ex que se ejecutará en todas las líneas que no coinciden?