Respuestas:
Hay una manera fácil de lograr esto. Necesitas realizar 3 pasos.
Vaya al menú Buscar> Buscar ...> Seleccione la pestaña "Marcar". Activar expresiones regulares. Busque ^<Path>
( ^
es para inicio de línea). No olvide marcar "Líneas de marcador" y presione "Marcar todo"
==> Todas las filas que desea mantener tienen un marcador
Vaya al menú "Buscar - Marcador - Marcador inverso"
==> Todas las líneas que desea eliminar están marcadas.
Vaya al menú "Buscar - Marcador - Eliminar líneas marcadas"
==> Todas las líneas marcadas se eliminan.
En realidad, esto se puede hacer en dos pasos a partir de 6.3. Creo que se puede hacer antes de eso, ya que tenía 5.9 cuando lo probé por primera vez.
Usando la publicación de Stema como base de esta respuesta. Hay un paso menos ahora. Marcar líneas y eliminar líneas sin marcar. Hecho. Instrucciones detalladas a continuación.
Menú de búsqueda "Buscar". En el cuadro de diálogo Buscar, haga clic en la pestaña "Marcar". Activar expresiones regulares. Busque ^<Path>
( ^
es para inicio de línea). No olvide marcar "Líneas de marcador" y presione "Marcar todo"
==> Todas las filas que desea mantener ahora tienen un marcador
Menú de búsqueda -> Marcador -> Eliminar líneas sin marcar.
==> Todas las líneas NO marcadas se eliminan.
^
en mi término de búsqueda, ni usar expresiones regulares. Espero que esto ayude a alguien.
regex reemplazar
(?!^.*test.*$)^.+
reemplazar prueba con el texto solicitado
reemplazar
[\r\n]{2,}
con \r\n
Se usa ^(?!<Path>).*\r\n
para reemplazar las coincidencias con una cadena vacía. La versión generalizada sería ^(?!.*?test).*\r\n
. Esto no eliminará la línea vacía al final del archivo. Todas las demás líneas se eliminan, incluidas varias líneas vacías consecutivas.
(?!)
Es una mirada negativa hacia arriba. ^.*test.*$
selecciona toda la línea que contiene el texto solicitado.
[\r\n]{2,}
coincide con cualquiera \r\n
que ocurra más de una vez que esta sea la nueva línea de Windows. Si tiene Linux u otro sistema operativo, es posible que deba meterse con esto. el segundo es reemplazarlo con una línea de retorno.
\r\n
EOL mencionada en la publicación es la que usa Windows y, por lo tanto, puede o no ser lo que está buscando. A menudo en entornos Linux es justo \n
, o en entornos Mac solo \r
, por lo que si extraes un archivo de cualquiera de ellos, no será EOL de estilo Windows. Sin embargo, si descarga a través de FileZilla y los activadores de modo ASCII, puede volver a cambiarlos a Windows EOL (como \n
en \r\n
). Entonces, si regex no funciona, verifique el estilo de EOL yendo a "Ver> Mostrar símbolos> Mostrar fin de línea". CR = \r
. LF = \n
.
Me parece que la forma más fácil es usar la función "Buscar todo en el documento actual" y luego copiar los resultados en un nuevo archivo o seleccionar todo y reemplazarlo en el actual.
Esto buscaría todas las líneas que contienen su texto y las enumeraría en la parte inferior. Simplemente haga clic derecho en el resultado de búsqueda y copie / pegue.
\tLine [\d]*:
. Sigue siendo una gran respuesta.
Vaya al menú Buscar -> Buscar ... -> Activar expresiones regulares. Busque "^ Ruta " (^ es para inicio de línea).
Haga clic en el botón "Buscar todo en el documento actual".
La ventana "Buscar resultado" aparecerá con todas las líneas del patrón. Seleccione copiar / pegar en una nueva pestaña en Notepad ++.
En esta nueva pestaña, llegó a: menú Buscar -> Reemplazar ... -> Activar expresiones regulares.
En el campo "Buscar qué:", use el patrón: "Línea \ d +:". Deje en blanco el campo "Reemplazar con:".
Haga clic en el botón "Reemplazar todo".
Siempre que realmente desee hacer coincidir <Path>
y no una ruta del sistema de archivos, puede probar esto desde una línea de comandos utilizando Perl:
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Funcionó con Strawberry Perl en Windows, así que ajústelo en consecuencia si los resultados no son los esperados.
Es torpe, pero cópielo todo en Excel y luego use =IF(LEFT(A1,6)="<Path>",A1,"")
y copie esa fórmula hasta el final. Luego copie de nuevo a Notepad ++. No es ideal, pero es bastante fácil (si tiene Excel). Advertencia: no funcionará bien con líneas sangradas (Excel desplazará las columnas, etc.).
No hay una manera fácil de hacer lo que quieres con Notepad ++. Deberá descargar un programa en su computadora o escribir algo en VB (supongo que está en Windows).
Puedes hacer lo que quieras de dos maneras con sed. La utilidad sed es una de las favoritas en * nix y se puede encontrar para Windows de las grandes personas en GnuWin ( http://gnuwin32.sourceforge.net/packages/sed.htm ). Descargaría este programa y luego ejecutaría su comando desde el símbolo del sistema.
Eliminar todas las líneas que no contengan:
sed -i '/^<PATH>/!d' file
Imprima todas las líneas que contienen a un nuevo archivo:
sed -n '/^<PATH>/p' file > newfile
Le sugiero que use imprimir las líneas que desea para un nuevo archivo. La razón de esto es que probablemente no obtendrá la declaración regex por primera vez. La utilidad sed utiliza la sintaxis básica de expresiones regulares (vea la referencia en http://www.regular-expressions.info/reference.html ). Si es algo así como una ruta * nix (/ var / www), entonces deberá escapar del carácter / para que su expresión regular funcione.
Ejemplo: sed -n '/^\/var\/www/p' file > newfile
Esto imprimirá todas las líneas que comienzan con '/ var / www'. Si solicité escapar del carácter /, entonces el comando habría arrojado un error. Puede escapar de un carácter especial (como /) con el carácter de barra diagonal inversa \.
Use Buscar-> Reemplazar e ingrese una expresión regular como ^[^ ].*
y reemplace todo con una cadena vacía usando Regular expression
. El siguiente paso es encontrar líneas vacías que busquen \n\n
reemplazar con el \n
uso Extended
varias veces hasta 0 occurrences were found.
(uso \r\n\r\n
y \r\n
dependiendo del formato de archivo). Si tiene muchas líneas vacías seguidas, es más rápido usar \n\n\n\n\n\n\n
o incluso más \n
: s en la cadena de búsqueda.