Réponses:
Il existe un moyen simple d'y parvenir. Vous devez effectuer 3 étapes.
Allez dans le menu Rechercher> Rechercher ...> Sélectionnez l'onglet "Marquer". Activer les expressions régulières. Rechercher ^<Path>
( ^
est pour début de ligne). N'oubliez pas de cocher "Signet lignes" et appuyez sur "Marquer tout"
==> Toutes les lignes que vous souhaitez conserver ont un signet
Aller au menu "Rechercher - Signet - Signet Inverse"
==> Toutes les lignes que vous souhaitez supprimer sont marquées d'un signet.
Aller au menu "Rechercher - Signet - Supprimer les lignes signetées"
==> Toutes les lignes marquées d'un signet sont supprimées.
Cela peut être fait en deux étapes à partir de 6.3. Je pense que cela peut être fait plus tôt que cela car j'avais la version 5.9 lorsque je l'ai essayée pour la première fois.
Utiliser stema's post comme base de cette réponse. Il y a un pas de moins maintenant. Marquez les lignes et supprimez les lignes non marquées. Terminé. Des instructions détaillées suivent.
Menu de recherche "Rechercher". Dans la boîte de dialogue Rechercher, cliquez sur l'onglet "Marque". Activer les expressions régulières. Rechercher ^<Path>
( ^
est pour début de ligne). N'oubliez pas de cocher "Signet lignes" et appuyez sur "Marquer tout"
==> Toutes les lignes que vous souhaitez conserver ont maintenant un signet
Menu de recherche -> Signet -> Supprimer les lignes non marquées.
==> Toutes les lignes non signées sont supprimées.
^
dans mon terme de recherche, ni d'utiliser une expression régulière. J'espère que ça aide quelqu'un.
regex remplacer
(?!^.*test.*$)^.+
remplacez test par votre texte demandé
remplacer
[\r\n]{2,}
avec \r\n
Utiliser ^(?!<Path>).*\r\n
pour remplacer les correspondances par une chaîne vide. La version généralisée serait ^(?!.*?test).*\r\n
. Cela ne supprimera pas la ligne vide à la fin du fichier. Toutes les autres lignes sont supprimées, y compris plusieurs lignes vides consécutives.
(?!)
est un regard négatif. ^.*test.*$
sélectionne toute la ligne contenant le texte demandé.
[\r\n]{2,}
correspond à tout ce \r\n
qui se produit plus d'une fois, c'est la nouvelle ligne Windows. Si vous avez Linux ou un autre système d'exploitation, vous devrez peut-être vous embêter avec cela. la seconde consiste à le remplacer par une ligne de retour.
\r\n
EOL mentionné dans le message est ce que Windows utilise et peut donc ne pas être ce que vous recherchez. Souvent, dans les environnements Linux, c'est juste \n
, ou dans les environnements Mac \r
, alors si vous extrayez un fichier, ce ne sera pas du style Windows EOL. Toutefois, si vous téléchargez via FileZilla et que des déclencheurs en mode ASCII sont utilisés, ils risquent de revenir dans EOL Windows (comme \n
dans \r\n
). Donc, si regex ne fonctionne pas, vérifiez le style EOL en allant dans "Affichage> Afficher les symboles> Afficher la fin de la ligne". CR = \r
. LF = \n
.
Il me semble que le moyen le plus simple consiste simplement à utiliser la fonction "Tout rechercher dans le document actuel", puis à copier les résultats dans un nouveau fichier ou à les sélectionner tous et à les remplacer dans le fichier actuel.
Cela trouverait toutes les lignes contenant votre texte et les listerait en bas. Faites un clic droit sur le résultat de la recherche et copiez / collez.
\tLine [\d]*:
. Encore une bonne réponse.
Allez dans le menu Rechercher -> Rechercher ... -> Activer les expressions régulières. Recherchez "^ Path " (^ correspond au début de la ligne).
Cliquez sur le bouton "Tout trouver dans le document actuel".
La fenêtre "Find result" apparaîtra avec toutes les lignes du motif. Sélectionnez les copier / coller dans un nouvel onglet dans Notepad ++.
Dans ce nouvel onglet, allez dans: menu Recherche -> Remplacer ... -> Activer les expressions régulières.
Dans le champ "Rechercher:", utilisez le modèle: "Ligne \ d +:". Laissez le champ "Remplacer par:" vide.
Cliquez sur le bouton "Remplacer tout".
À condition que vous souhaitiez réellement faire correspondre <Path>
et non un chemin de système de fichiers, vous pouvez essayer à partir d'une ligne de commande à l'aide de Perl:
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Cela fonctionnait avec Strawberry Perl sous Windows, ajustez-le en conséquence si les résultats ne sont pas ceux que vous attendez.
C'est maladroit, mais copiez le tout dans Excel , puis utilisez =IF(LEFT(A1,6)="<Path>",A1,"")
et copiez cette formule jusqu'au bout. Ensuite, recopiez-le dans Notepad ++. Ce n’est pas idéal, mais c’est assez facile (si vous avez Excel). Attention: Cela ne fonctionnera pas bien avec les lignes en retrait (Excel décale les colonnes, etc.).
Il n'y a pas de moyen facile de faire ce que vous voulez avec Notepad ++. Vous devrez soit télécharger un programme sur votre ordinateur, soit écrire un script en VB (je suppose que vous êtes sous Windows).
Vous pouvez faire ce que vous voulez de deux façons avec sed. L'utilitaire sed est un favori sur * nix et peut être trouvé pour Windows par les gens formidables de GnuWin ( http://gnuwin32.sourceforge.net/packages/sed.htm ). Vous souhaitez télécharger ce programme, puis exécuter votre commande à partir de l'invite de commande.
Supprimer toutes les lignes ne contenant pas:
sed -i '/^<PATH>/!d' file
Imprimer toutes les lignes contenant un nouveau fichier:
sed -n '/^<PATH>/p' file > newfile
Je vous suggère d'utiliser imprimer les lignes que vous voulez dans un nouveau fichier. La raison en est que vous n'obtiendrez probablement pas la déclaration regex pour la première fois. L'utilitaire sed utilise la syntaxe de base des expressions régulières (voir la référence à l' adresse http://www.regular-expressions.info/reference.html ). Si quelque chose ressemble à un chemin * nix (/ var / www), vous devrez échapper au caractère / pour que votre expression rationnelle fonctionne.
Exemple: sed -n '/^\/var\/www/p' file > newfile
Ceci affichera toutes les lignes commençant par '/ var / www'. Si je classais pour échapper le caractère /, alors la commande aurait jeté une erreur. Vous pouvez échapper à un caractère spécial (tel que /) avec le caractère barre oblique inversée \.
Utilisez Rechercher-> Remplacer et entrez une expression régulière comme ^[^ ].*
, par exemple, remplacez tout par une chaîne vide Regular expression
. L' étape suivante est de trouver des lignes vides recherche de \n\n
remplacement à l' \n
aide de Extended
plusieurs fois jusqu'à ce que 0 occurrences were found.
( l' utilisation \r\n\r\n
et \r\n
selon le format de fichier). Si vous avez beaucoup de lignes vides dans une ligne, il est plus rapide d’utiliser \n\n\n\n\n\n\n
ou même plus \n
: s dans la chaîne de recherche.