Regex: Supprimer les lignes contenant “aide”, etc
J'ai un long document de commandes. À l'aide de Notepad++ ou regex, je veux supprimer toutes les lignes contenant "aide", y compris keyboard_help, etc.
Comment cela peut-il être fait?
Vous devez vous connecter pour publier un commentaire.
Cela est également possible avec Notepad++:
Vérifier Signet ligne (si il n'y a pas de Marque onglet mise à jour pour la version actuelle).
Entrez votre terme de recherche et cliquez sur Marquer Tous les
Maintenant, allez dans le menu de Recherche → Signet → Supprimer un Signet lignes
Fait.
cd
dans le chemin, et le type dans un complexe de commande (se soucier de la syntaxe et de vissage en permanence, pour se rendre compte ensuite il n'y a pas de sauvegarde). [Ne m'obtenez pas le mal, - je utiliser les commandes de la console de tous les temps pour d'autres choses, mais pour quelque chose comme cela, c'est juste inutile.]BOOKMARK LINE
est important ici, sinon ça ne fonctionne pas!.Un autre moyen de le faire dans Notepad++ tout est dans le dialogue Rechercher/Remplacer et avec la regex:
Ctrl + h pour afficher le trouver boîte de dialogue remplacer.
Dans le
Find what:
zone de texte incluent votre regex:.*help.*\r?\n
(où le\r
est facultatif dans le cas où le fichier ne possède pas de Windows à des fins de ligne).Quitter le
Replace with:
zone de texte vide.Assurez-vous que l'expression Régulière bouton radio en Mode de Recherche de la zone est sélectionnée. Puis cliquez sur
Replace All
et le tour est joué! Toutes les lignes contenant votre terme de recherchehelp
ont été supprimés.Tâche facile avec
grep
:Ajouter
> newFileName
pour rediriger la sortie vers un nouveau fichier.Mise à jour
Pour clarifier la situation, le comportement normal l'impression que les lignes sur l'écran. Pour le diriger vers un fichier, le
>
peut être utilisé. Ainsi, dans cette commande:grep
appelle lagrep
programme, évidemment-v
est un drapeau à l'inverse de la sortie. Par defaulf,grep
imprime les lignes qui correspondent au motif donné. Avec cet indicateur, il permet d'imprimer les lignes qui ne pas correspondent à ce modèle.help
est le modèle pour correspondre àfilename
est le nom du fichier d'entrée>
redirige la sortie vers l'élément suivantnewFileName
le nouveau fichier de sortie sera sauvé.Comme vous pouvez remarquer, vous ne serez pas en supprimant des choses dans votre fichier.
grep
allez la lire et un autre fichier sera enregistré, modifiée en conséquence.grep
installé. De toute façon, je vous recommande l'installation de GNU grep, il va certainement travailler sur Windows, et c'est vraiment un outil utile.>
dans ce cas), la dernière commande degrep -v help filename > outputFileName
Vous pouvez le faire à l'aide de sed:
sed '/help/d' < inputFile > outputFile
sed '/^help/ d'
devrait fonctionner. Le^
représente le début de la ligne.sed
etgrep
Si vous êtes sur Windows, essayez
findstr
. Des outils de tiers, ne sont pas nécessaires:Il prend en charge la regex est trop! Suffit de lire l'outil d'aide
findstr /?
.P. S. Si vous voulez travailler avec de gros, énorme des fichiers (comme les 400 MO de fichiers journaux) un éditeur de texte n'est pas très efficace de la mémoire, de sorte que, comme quelqu'un l'a déjà souligné, les outils de ligne de commande sont la voie à suivre. Mais il n'y a pas un grep sur Windows, donc...
Je viens de tomber sur une de 1 GO de fichier journal, et il a littéralement pris 3 secondes.
De recherche avec une expression régulière:
\n\n
, remplacez-le par ` (rien)