regex - solo - probar expresiones regulares
Regex: Eliminar las lĂneas que contienen (6)
Búsqueda con expresión regular:
^.*(help).*$
Tengo un largo documento de comandos. Usando notepad ++ o regex, quiero eliminar todas las líneas que contengan "ayuda", incluyendo keyboard_help etc.
¿Cómo se puede hacer esto?
Esto también es posible con Notepad ++
- Vaya al menú de búsqueda Ctrl + F y abra la pestaña
"Mark"
. Marque
"Bookmark line"
(si no hay una actualización de la pestaña"Mark"
en la versión actual).Ingrese su término de búsqueda y haga clic en
"Mark All"
- Todas las líneas que contienen el término de búsqueda están marcadas.
Ahora vaya al Menú
"Search -> Bookmark -> Remove Bookmarked lines"
Hecho.
Otra forma de hacer esto en Notepad ++ es todo en el cuadro de diálogo Buscar / Reemplazar y con expresiones regulares:
Ctrl + h para que aparezca el diálogo Buscar reemplazar.
En el cuadro de texto
Find what:
incluya su expresión regular:..*help.*/r?/n
(donde/r
es opcional en caso de que el archivo no tenga finales de línea de Windows).Deje el cuadro de texto
Replace with:
vacío.Asegúrese de que el botón de opción Expresión regular en el área Modo de búsqueda esté seleccionado. A continuación, haga clic en
Replace All
y ¡voilá! Se han eliminado todas las líneas que contienen lahelp
su término de búsqueda.
Puede hacer esto usando sed: sed ''/help/ d'' < inputFile > outputFile
Si está en Windows, intente findstr
, no se necesitan herramientas de terceros:
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
¡Es compatible con expresiones regulares también! Solo lee la ayuda de la herramienta findstr /?
PD: si desea trabajar con archivos grandes, GRANDES (como archivos de registro de 400 mb), un editor de texto no es muy eficiente en memoria, por lo que, como alguien ya señaló, las herramientas de línea de comandos son el camino a seguir. Pero no hay grep en las ventanas, así que ...
Simplemente ejecuté esto en un archivo de registro de 1GB y literalmente tomó 3 segundos.
Tarea fácil con grep
:
grep -v help filename
> newFileName
para redirigir la salida a un nuevo archivo.
Actualizar
Para aclararlo, el comportamiento normal será imprimir las líneas en la pantalla. Para canalizarlo a un archivo, se puede utilizar el >
. Así, en este comando:
grep -v help filename > newFileName
-
grep
llama al programagrep
, obviamente -
-v
es una bandera para invertir la salida. Por defecto,grep
imprime las líneas que coinciden con el patrón dado. Con esta bandera, imprimirá las líneas que no coincidan con el patrón. -
help
es el patrón a juego. -
filename
es el nombre del archivo de entrada -
>
redirige la salida al siguiente elemento -
newFileName
el nuevo archivo donde se guardará la salida.
Como se habrá dado cuenta, no borrará cosas de su archivo. grep
lo leerá y se guardará otro archivo, modificado en consecuencia.