Estoy tratando de contar el número de líneas después de una fila problemática en un archivo csv. Soy consciente de que puedo usar elgrep -a #
sintaxis para generar # número de líneas después de encontrar una coincidencia. Solo me interesa el número real de líneas. Me doy cuenta de que podría establecer el número en MAX_INT, canalizarlo en un archivo y hacer un poco más de procesamiento.
Estoy buscando un breve resumen para decirme el recuento.
¿Alguna sugerencia?
grep -m1 match >/dev/null
. Y su segundo problema es un GNUsed
: no restablece su desplazamiento de entrada por especificación. Tienes que usar-u
w / GNU, que no siempre es deseable. Podría haber sido más claro, pero supuse que GNUgrep
y GNUsed
vendrían en pares. Creo que tambiéngrep -qm1
podría funcionar para atajar la/dev/null
redirección, pero GNUgrep
hace cosas raras con las que-q
no puedo recordar cómo funcionan juntas.wc -l
es un poco más barato quegrep -c ''
.Aquí hay una manera.
fuente
Otra forma: el uso de
dc
es un poco esotérico, pero parece funcionar bien aquí:sed
buscaprob.txt
"problema" y la última línea, y utiliza el=
comando para generar el número de línea de ambos.dc
lee estos dos valores en la pila, los invierte, sustrae e imprime la diferencia.fuente
Completamente con sed (aunque dos comandos con una tubería)
Elimina toda la línea antes de la línea y luego el siguiente comando cuenta las líneas en el nuevo archivo.
fuente
Esto debería eliminar todas las líneas hasta (e incluyendo) la problemática y luego contar las líneas restantes:
fuente