Eliminar una línea que no contenga un valor
Resuelto
dpart
-
pitibalrog Mensajes publicados 1 Estado Miembro -
pitibalrog Mensajes publicados 1 Estado Miembro -
Hola,
Tengo un archivo txt con cientos de miles de líneas.
Solo quiero conservar las líneas que contienen el valor 42218
¿Tienes algún medio?
¡Sabes que no sé programar, por supuesto!
Gracias de antemano, tu ayuda sería muy valiosa.
Tengo un archivo txt con cientos de miles de líneas.
Solo quiero conservar las líneas que contienen el valor 42218
¿Tienes algún medio?
¡Sabes que no sé programar, por supuesto!
Gracias de antemano, tu ayuda sería muy valiosa.
Configuración: Windows XP Firefox 3.5.3 Word 2002
9 respuestas
-
¡Hola,
entonces tú vas a bendecir las expresiones regulares!
En resumen, es una forma de escritura genérica para hacer búsqueda y reemplazo.
Necesitas un editor de texto que haga búsqueda y reemplazo con expresiones regulares, como un notepad++ => https://www.commentcamarche.net/telecharger/developpement/16295-notepad/
Aquí está, según yo, la forma más simple de seguir:
1] Marcamos las líneas a conservar:
búsqueda: ^(.*)(42218)(.*)$
reemplazar: @$1$2$3
2] Eliminamos las líneas que no queremos
búsqueda: ^[^@]{1}.*$
reemplazar por nada, eliminamos:
3] Eliminamos los saltos de línea superfluos:
búsqueda: \r\n\r\n
reemplazar: \r\n
4] Eliminamos el marcado de las líneas:
búsqueda: ^@
reemplazar por nada, eliminamos:
¡Eso es, se puede hacer en menos expresiones, pero esto es lo más simple de escribir/entender!
¡EnJoY!
Zep3k!GnOSomos rangers, amigo, rangers...
-
1ª etapa: realmente reemplazo las líneas con mi valor por @$1$2$3
¿Cuál es el interés?
2ª etapa: ahí no sucede nada
¿Estoy haciendo algo mal?- No sé, debo escribir mal, mal expresarme porque es la + simple que mueres...
1ª etapa: efectivamente reemplazo las líneas con mi valor por @$1$2$3
¿Cuál es el interés?
--> 1] Marcamos las líneas a conservar:
==> Pues sirve para marcar las líneas!
2ª etapa: aquí no pasa nada, ¿estoy haciendo algo mal?: Sí, porque esta línea suprime las que no queremos, como he INDICADO en el enunciado del 2]...
desbordado....
--
Zep3k!GnOSomos rangers, tío, rangers...
-
-
-
El tema es un poco antiguo, pero cuando veo que se habla de Notepad++ con expresiones regulares me parece genial, aunque cuando se propone hacer esto en 4 pasos en lugar de uno solo, entiendo que pueda resultar desconcertante.
Para conservar solo las líneas que contienen 42218, basta con buscar las líneas que no contienen 42218 y eliminarlas (reemplazándolas por nada).
Para ello, en Notepad++, presiona las teclas ctrl+H para abrir la ventana de búsqueda y reemplazo.
En el campo "Buscar", escribe: ^((?!42218).)*$\n
Deja el campo "Reemplazar por" vacío
Marca "Expresión regular" en el modo de búsqueda
Y finalmente haz clic en el botón reemplazar todo. Si por algún motivo esto no funciona como esperabas, presiona las teclas ctrl+z para volver al estado anterior.
-
-
hola
por lo tanto, solo quiero conservar la primera línea, que contiene "42218"
en DOS
findstr "42218" archivo.txt > archivo2.txt -
Hola,
Con sed (el archivo original se guardará con el nombre archivo.txt.txt)
sed -i.txt '/42218/!d' archivo.txt
--
106485010510997108 -
-
si tienes Excel puedes hacer esto con
escribes Texto en la primera celda
luego copias todo tu archivo con CTRL+C
pones el cursor en la celda de abajo y pegas todo tu archivo con CTRL+V
selecciona todo y luego ve a Datos
Filtro...
filtro automático, seleccionas contiene y al lado escribes 42218
y OK, solo te quedarán las líneas que te interesan
las copias y pegas donde quieras -
sí, gracias, pero tengo demasiadas líneas para que funcione con Excel. A menos que divida el archivo txt en varias decenas de otros...
Es por eso que buscaba una forma automática de hacerlo directamente en el archivo txt. -
Hola,
Descarga sed aquí https://sourceforge.net/projects/gnuwin32/files/sed/4.2-1/sed-4.2-1-setup.exe/download?use_mirror=iweb
Luego instálalo.
Aquí tienes un ejemplo de uso http://cjoint.com/data/kttzUEAxlD.htm
No es complicado ;-)
--
106485010510997108 -
¡Wow, genial! No lo conocía, ¡está increíble! :)
--
Zep3k!GnOSomos rangers hombre, rangers...
-