Comment puis-je tout supprimer après la première colonne de Notepad ++?


40

J'essaie de me débarrasser de tout après une colonne dans Notepad ++. Le mode colonne n'est pas une option. C'est possible?

Ce que j'ai:

70.97.110.40    159 ms          [n/a]                   21              
70.97.117.177   134 ms          [n/a]                   21              
70.97.120.10    75 ms           [n/a]                   21              
70.97.122.105   87 ms           www.portless.net        21              
70.97.122.106   89 ms           www.popovetsky.org      21              
70.97.122.107   95 ms           www.psmythe.net         21              
70.97.122.104   98 ms           wasabi.prostructure.com 21              
70.97.122.108   89 ms           crm.prostructure.com    21              
70.97.122.109   87 ms           internal.prostructure.com21 

Ce que je veux:

70.97.110.40
70.97.117.177
70.97.120.10
70.97.122.105
70.97.122.106
70.97.122.107
70.97.122.104
70.97.122.108
70.97.122.109

2
Les colonnes sont-elles séparées par des tabulations?
Excellll

3
Une autre question: les données que vous souhaitez conserver contiennent-elles toujours un espace?
Excellll

1
Nope j'ai seulement besoin de l'ips
Bob J

20
Pourquoi voulez-vous faire cela dans Notepad ++? Pourquoi le mode colonne n'est pas une option?
Kamil

1
Vous pouvez utiliser le mode colonne pour supprimer la deuxième colonne de la fin de vie, puis utiliser la barre de coupe et arrêter et sauvegarder pour supprimer les espaces.
Casey Kuball

Réponses:


60

Si les données de la première colonne ne contiennent jamais d'espace, vous pouvez utiliser une expression régulière rechercher et remplacer pour obtenir ce que vous voulez.

En mode d'expression régulière, recherchez:

^([^ ]*).*

Et remplace par

\1

Qu'est-ce que cela fait:

^indique que toute correspondance doit commencer au début d'une ligne.
([^ ]*)est une expression qui ne contient pas d'espace. Le match est gourmand, donc tout sera mis en correspondance jusqu'au premier espace (ou à la fin de la ligne, selon la première éventualité).
.*est tout le reste sur la ligne.

\1fait référence à la partie de la correspondance à l'intérieur des parenthèses. C'est-à-dire que toute la ligne est remplacée par le bit de la première colonne.


5
Il est bon de savoir que notepad ++ prend en charge les expressions régulières dans search-replace!
Kamil

1
Regex fera le travail pour vous tant que les données ne contiennent jamais d'espace. Plus simple serait la commande 'couper' d'UNIX, mais exécuter des commandes UNIX sous Windows n'est pas un problème. cut est fait pour cela et traite rapidement les gros fichiers, avec des délimiteurs de colonnes définis ou par comptage de caractères.
Karl

31
Cela peut être fait beaucoup plus simplement: remplacez ". *" (Notez l’espace d’entrée) par "" (c’est-à-dire rien) pour tout effacer après et y compris le premier espace.
Fraxtil

2
@ Frxtil Merci. Vous devriez poster cela comme une réponse. Vous obtiendrez un vote positif de moi.
Excellll

@Excellll bien, c'est fait.
Fraxtil

99

Voici une expression régulière plus simple que vous pouvez utiliser pour obtenir le même effet. Remplacer

 .*

(notez le premier espace)

avec rien. Cela supprimera tout après et incluant le premier espace. Cela fonctionnera tant que vos adresses IP ne sont jamais préfixées par des espaces (comme c'est le cas dans votre exemple).


8
Man, regex est de la magie pure. Je ne pense pas que je le ferai jamais :)
Torben Gundtofte-Bruun

14
Assurez-vous que le drapeau à avoir. le match newlines est désactivé.
Taemyr

3
Si c'est potentiellement un onglet au lieu d'un espace, vous pouvez utiliser[ \t].*
Cornstalks

4
@ Cornstalks \s.*est plus court. Peut-être même utiliser \s+.*, pour faire correspondre une quantité arbitraire d'espaces, maintenant que nous codons de manière défensive .
Anko

1
@ jpmc26 tant que vous ne dites pas "regex" et "simple" en une phrase :)
Torben Gundtofte-Bruun

39

Si vous utilisez Windows et si cela ne vous dérange pas de laisser des espaces (vous pouvez ensuite les trouver / les remplacer), utilisez la fonction de sélection de bloc :

  1. Appuyez et maintenez la Alttouche
  2. À l'aide de la souris, sélectionnez la partie à supprimer (le bloc de texte entier)
  3. Relâchez la Altclé
  4. Supprimer ce bloc de texte
  5. Répéter au besoin

Est-ce que c'est supposé être le moins "-" clé?
Dracs

Désolé, j'ai utilisé les crochets LT et GT autour de la touche "alt". Correction maintenant.
Reed Shilts

10
Vous pouvez le changer en <kdb> Alt </ kbd> et le formater en tant que clé.
Dracs

J'utilise Notepad depuis toujours ... et je n'ai jamais su que cette fonctionnalité existait! 1 Bazillion +1 !!!!!

1
L'OP a déclaré: "Le mode colonne n'est pas une option"
Peter Mortensen

11

Une expression régulière est plus rapide, mais vous pouvez faire des choses vraiment difficiles avec des macros si la tâche est plus compliquée.

Vous pouvez enregistrer une macro:

  1. Curseur sur la ligne 1
  2. Hit Start enregistrement
  3. Appuyez sur la touche home
  4. Tenez Ctrlpendant que vous appuyez sur la touche Right arrow(sept fois)
  5. Tenez Shiftpendant que vous appuyez sur la toucheEnd
  6. appuyez sur la touche Delete
  7. appuyez sur la touche Down arrow
  8. Frappé Stop recording

Puis rejouez-le:

  1. Hit "Exécuter une macro plusieurs fois"
  2. Tapez les lignes du document moins 1, car la première ligne est terminée.

9

Placez le curseur après 70.97.110.40.

Placer le curseur

Appuyez sur Altet faites glisser le curseur vers la droite et vers le bas pour sélectionner la partie non souhaitée.

Sélectionner

Appuyez sur Backspaceou Delete.

Supprimer


1
Tout ce temps en utilisant Notepad ++ et je n'ai jamais su qu'il avait un "mode de sélection de bloc" comme TextPad.
Kev

@Kev: cela fonctionne de la même manière dans Visual Studio.
Peter Mortensen

1
L'OP a déclaré: "Le mode colonne n'est pas une option"
Peter Mortensen

@PeterMortensen - re: VS - hell, je l'utilise depuis 2002 et je ne le savais même pas!
Kev

8

Voici quelques méthodes alternatives à la réponse donnée.

Si vos données sont fixed width, vous pouvez également utiliser l' expression régulière suivante dans la recherche:

Trouver quoi: ^(.{16}).*$

Remplacer par: \1

C'est formidable si les données que vous souhaitez conserver contiennent un espace, comme quelqu'un l'a mentionné. De plus, encore une fois pour les données de largeur fixe, vous pouvez utiliser Column Mode Editing. C'est une petite fonctionnalité intéressante qui vous permet d'éditer plusieurs lignes de données dans le même emplacement de colonne. Voir Édition en mode colonne .

Il fait mention des touches fléchées, mais vous pouvez également utiliser Page Up/Downpour une méthode plus rapide, ainsi que des touches Endet Home. La souris fonctionne aussi. Mais vous pouvez utiliser cela pour une méthode ad hoc de suppression de données après un certain point, en particulier s'il ne s'agit que de quelques lignes. C'est également bon pour la copie de données, mais la façon dont elles sont collées est un peu étrange, vous voudrez donc vous habituer à cela en premier.


1
Mieux que de le sélectionner et de le remplacer par lui-même serait d’utiliser un lookbehind comme: (? <= ^. {13}). * Et de le remplacer par rien. Ceci sélectionnera n'importe quoi après les 13 premiers caractères.
Chris Murray

4

Similaire à enthdegree:

  1. Placez le curseur sur la colonne 16
  2. Shift + Alt+Page Down
  3. Shift+ Alt+End
  4. Delete

S'il y a une ligne vide à la fin du fichier, appuyez simplement sur Up Arrow avant # 3.

Ce n'est pas parfait, mais c'est pratique.


4
  1. presse ALT tout en utilisant la souris comme un lasso.
  2. Sélectionnez tout ce que vous voulez supprimer
  3. presse DELETE

En supposant que la première colonne s'aligne bien, comme les adresses IP, c'est le moyen le plus rapide.
bgStack15

L'OP a déclaré: "Le mode colonne n'est pas une option"
Peter Mortensen

3

Voici un moyen visuel:

  • Placez le curseur à la fin d'une adresse IP.
  • Alt+ Shift+Pg Down
  • Alt+ Shift+Right
  • Delete

Ce n'est pas «basé sur la colonne». Cela ne fonctionne que parce que vos adresses IP sont toutes alignées.


1
Que voulez-vous dire par "ceci n'est pas basé sur une colonne"? Alt + Shift + Arrow permet de passer en "mode colonne".
MrWhite

Il ne respecte pas la délimitation des tabulations en tant que colonne. Il les divise en espaces afin que chaque ligne de la sélection ait le même nombre de caractères au-delà du bord du point de départ de la sélection.
Enthdegree

1

En mode d'expression régulière, recherchez:

\ t. *

Et remplace par

Rien


Pouvez-vous ajouter une phrase ou deux pour expliquer ce que cela fait? Merci.
Fixer1234

1
Stack Exchange convertit les tabulations en espaces lors de l'affichage, mais même en mode édition, l'exemple ne montre aucun onglet.
Arjan

0

Supprimer tout après la première colonne dans Notepad ++:

  1. Séléctionnez la 2ème colonne: Alt+ faites glisser
  2. Pour sélectionner des colonnes de repos: appuyez simplement sur Right Arrow
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.