Quiero buscar una cadena y buscar el número de apariciones en un archivo utilizando el editor vi.Buscar cadena y obtener recuento en el editor vi
Respuesta
:g/xxxx/d
Esto eliminará todas las líneas con patrón e informará cuántas eliminaron. Deshacer para recuperarlos después.
Por supuesto, él solo puede omitir la "d" para que no tenga que volver a la operación. – Rook
Tenga en cuenta que esto solo le indica cuántas líneas, no cuántas ocurrencias. Creo que la solución de dirk es mejor –
Mi solución a continuación cuenta correctamente múltiples ocurrencias dentro de una línea y no hay nada que deshacer. –
Necesita la bandera n
. Para contar las palabras utilizan:
:%s/\i\+/&/gn
y una palabra en particular:
:%s/the/&/gn
Ver count-items
sección de documentación.
Si sólo hay que escribir en:
%s/pattern/pattern/g
entonces la línea de estado le dará el número de coincidencias en vi así.
Parece que esta respuesta es para usuarios de Vim y no para Vi :( – kadeshpa
¿Solo tiene vi en su sistema? ¿Qué versión? – dirkgently
Alguien etiquetó su pregunta con vim en ella ... Lo eliminé – ojblass
el camino es
:% s/patrón // gn
+1 para l ess escribiendo y al grano. – Leafy
Esta es la respuesta más auténtica sin utilizar ningún truco de sobre matar. – user1412066
uso
:% s/patrón/\ 0/g
cuando cadena de patrón es demasiado largo y no te gusta volver a escribirlo todo.
(similar a Gustavo dijo, pero, además:)
Para cualquier previamente de búsqueda, se puede hacer simplemente:
:%s///gn
Un patrón no es necesario, porque ya está en la búsqueda -registro (@/
).
"%" - hacer s/
en todo el archivo
"g" - Búsqueda global (con múltiples hits en una sola línea)
"n" - evita cualquier sustitución de s/
- se elimina nada! ¡nada se debe deshacer!
(ver: :help s_flag
para más información)
(De esta manera, funciona perfectamente con "Búsqueda de texto seleccionado visualmente", como se describe en vim-wikia tip171)
Sugiero hacer:
- Busque con
*
para hacer una "búsqueda limitada" de lo que está debajo del cursor, o haga una búsqueda estándar/pattern
. - Usa
:%s///gn
para obtener el número de apariciones.O puede usar:%s///n
para obtener el número de líneas con ocurrencias.
** realmente con lo que pude encontrar un plug-in que dar mensajes de "partido de N de N en N líneas" con cada búsqueda, pero por desgracia.
Nota: No se deje confundir por la redacción complicada de la salida. El comando anterior podría darle algo como 4 matches on 3 lines
donde este último podría darle 3 matches on 3 lines
. Si bien técnicamente es preciso, este último es engañoso y debería decir '3 líneas coinciden'. Entonces, como puede ver, realmente nunca hay necesidad de usar la última forma ('n' solamente). Obtienes la misma información, más claramente, y más usando la forma 'gn'.
- 1. Buscar cadena y agregar línea en vi/vim
- 2. /in vi ¿Buscar y reemplazar?
- 3. ordena filas en el editor 'VI'
- 4. ¿Cómo puedo buscar 3 cadenas a la vez en el editor vi?
- 5. Cómo incluir una barra diagonal en vi buscar y reemplazar
- 6. Cualquier editor como VI en Windows?
- 7. Buscar/Grep en todos los tampones VI
- 8. ¿Cómo puedo marcar/resaltar líneas duplicadas en el editor VI?
- 9. Buscar y reemplazar dentro de la selección en `vi`
- 10. Buscar y obtener una línea en Python
- 11. El recuento de cadena() método
- 12. ¿Cómo especificar un editor para abrir el archivo crontab? "export EDITOR = vi" no funciona
- 13. recuento SQLite, el grupo y el orden según el recuento
- 14. jquery buscar clase y obtener el valor
- 15. buscar y reemplazar la cadena
- 16. buscar y reemplazar cadena en un archivo
- 17. cadena del recuento
- 18. Buscar y reemplazar cadena en el parámetro bash
- 19. recuento filtrada y el recuento total y sin subconsulta
- 20. Obtener el recuento de caracteres de EditText
- 21. PHP Buscar cadena en el archivo CSV
- 22. Obtener el recuento de elementos jQuery.each()
- 23. Lista anidada y recuento()
- 24. ¿Cómo cambiar entre múltiples archivos en UNIX mientras usa el editor VI?
- 25. Cómo autocompletar en la línea de comandos KornShell con el editor vi
- 26. Búsqueda hacia atrás en el modo vi
- 27. ¿Cómo buscar una cadena en otra cadena?
- 28. C# buscar partido exacto en la cadena
- 29. Obtener la última búsqueda o buscar y reemplazar cadena de nuevo en vim?
- 30. SPARQL consulta y el recuento de distinta
La respuesta seleccionada (': g/xxxx/d') es terrible, peligrosa e inferior a otras en esta página. Por favor deseleccionarlo. –
Estoy de acuerdo y solo dice 'líneas eliminadas' no 'apariciones se borraron' – user1709076