J'ai un long document de commandes. En utilisant Notepad ++ ou regex, je veux supprimer toutes les lignes contenant "help", y compris keyboard_help, etc.
Comment cela peut-il être fait?
C'est également possible avec Notepad ++:
Vérifiez la ligne de signet (s'il n'y a pas de mise à jour de l'onglet Mark dans la version actuelle).
Entrez votre terme de recherche et cliquez sur Marquer tout
Maintenant, allez dans le menu Rechercher → Signet → Supprimer les lignes marquées
Terminé.
cd
dans le chemin, et de taper une commande complexe (s'inquiéter de la syntaxe et du vissage en permanence puis se rendre compte il n'y a pas de sauvegarde). [ Ne vous méprenez pas, j'utilise les commandes de la console tout le temps pour d'autres choses, mais pour quelque chose comme ça, c'est juste une surpuissance.]BOOKMARK LINE
est importante ici sinon cela ne fonctionnera pas!.Une autre façon de le faire dans Notepad ++ est tout dans la boîte de dialogue Rechercher / Remplacer et avec l'expression régulière:
Ctrl+ hpour afficher la boîte de dialogue Rechercher remplacer.
Dans la zone de
Find what:
texte, incluez votre expression régulière:.*help.*\r?\n
(où le\r
est facultatif dans le cas où le fichier n'a pas de fin de ligne Windows).Laissez la zone de
Replace with:
texte vide.Assurez-vous que le bouton radio Expression régulière dans la zone Mode de recherche est sélectionné. Ensuite, cliquez
Replace All
et le tour est joué! Toutes les lignes contenant votre terme de recherchehelp
ont été supprimées.la source
Tâche facile avec
grep
:Ajoutez
> newFileName
pour rediriger la sortie vers un nouveau fichier.Mise à jour
Pour le clarifier, le comportement normal sera d'imprimer les lignes à l'écran. Pour le diriger vers un fichier, le
>
peut être utilisé. Ainsi, dans cette commande:grep
appelle legrep
programme, évidemment-v
est un drapeau pour inverser la sortie. Par défaut,grep
imprime les lignes qui correspondent au motif donné. Avec ce drapeau, il imprimera les lignes qui ne correspondent pas au motif.help
est le modèle qui correspondfilename
est le nom du fichier d'entrée>
redirige la sortie vers l'élément suivantnewFileName
le nouveau fichier où la sortie sera enregistrée.Comme vous l'avez peut-être remarqué, vous ne supprimerez pas les éléments de votre fichier.
grep
le lira et un autre fichier sera enregistré, modifié en conséquence.la source
grep
installé. Quoi qu'il en soit, je vous recommande d'installer GNU grep, cela fonctionnera certainement sous Windows, et c'est un outil vraiment utile.>
dans ce cas), donnant une commande finale degrep -v help filename > outputFileName
Vous pouvez le faire en utilisant sed:
sed '/help/ d' < inputFile > outputFile
la source
sed '/^help/ d'
devrait fonctionner. Le^
représente le début de la ligne.sed
etgrep
Recherche avec une expression régulière:
la source
\n\n
, remplacez par `` (rien)Si vous êtes sous Windows , essayez
findstr
. Les outils tiers ne sont pas nécessaires:Il supporte aussi les regex! Lisez simplement l'aide de l'outil
findstr /?
.PS Si vous voulez travailler avec de grands, grands fichiers (comme 400 Mo fichiers journaux) un éditeur de texte n'est pas très efficace mémoire, donc, comme quelqu'un l'a déjà souligné, les outils de ligne de commande sont la voie à suivre. Mais il n'y a pas de grep sur Windows, alors ...
Je viens de l'exécuter sur un fichier journal de 1 Go, et cela a littéralement pris 3 secondes.
la source