Notepad ++ remplace progressivement

Disons que je veux avoir 10 lignes de données mais je veux une valeur à incrémenter pour chaque ligne ou morceau de données. Comment puis-je incrémenter cette valeur?

Par exemple … Si j’ai ces lignes, existe-t-il un moyen de regex pour remplacer les valeurs d’ID par incrémentation?

     

— Voici ce que je voudrais qu’il ressemble … (si l’id de la première ligne monte un thats ok)

      

Vous n’êtes pas sûr de regex, mais vous pouvez le faire dans Notepad ++, même s’il n’est pas très flexible.

Dans l’exemple que vous avez donné, maintenez la Alt enfoncée et sélectionnez la colonne de nombres que vous souhaitez modifier. Ensuite, allez dans Edit->Column Editor et sélectionnez le bouton radio Number to Insert dans la fenêtre qui apparaît. Ensuite, spécifiez votre numéro et votre incrément initial et appuyez sur OK. Il devrait écrire les nombres incrémentés.

Remarque: cela fonctionne également avec la fonction d’ Multi-editing (sélection de plusieurs emplacements tout en maintenant la touche Ctrl enfoncée).

Ce n’est cependant pas la flexibilité que la plupart des gens trouveraient utile. Notepad ++ est génial, mais si vous voulez un éditeur vraiment puissant capable de faire des choses comme ça facilement, je dirais utiliser Vim.

Je cherchais la même fonctionnalité aujourd’hui mais je ne pouvais pas le faire dans Notepad ++. Cependant, nous avons TextPad à notre secours. Cela a fonctionné pour moi.

Dans la boîte de dialog de remplacement de TextPad, activez regex; alors vous pourriez essayer de remplacer

  

par

  

Jetez un oeil à ce lien pour d’autres fonctionnalités de remplacement incroyables de TextPad – http://sublimetext.userecho.com/topic/106519-generate-a-sequence-of-numbers-increment-replace/

Comme il y a des réponses réelles limitées, je partagerai cette solution. Pour des cas très simples comme votre exemple, vous le faites à l’envers …

De ceci

 1 2 3 4 5 

Remplacez \r\n par " />\r\n | | | | | | | | |

Des choses évidentes, mais cela peut aider quelqu'un à faire le travail étrange et unique pour économiser quelques coups de clé.

Les solutions suggérées ci-dessus ne fonctionneront que si les données sont alignées.
Voir la solution dans le lien en utilisant le plug-in PythonScript Notepad ++, ça marche bien!

stackoverflow Rechercher / Remplacer mais Incrémenter Valeur

J’ai eu le même problème avec plus de 250 lignes et voici comment je l’ai fait:

par exemple :

      

vous placez le curseur juste après le “1” et vous cliquez sur alt + shift et commencez à descendre avec la flèche jusqu’à ce que vous atteigniez la ligne inférieure maintenant vous voyez un groupe de sélections cliquez sur effacer pour effacer le numéro 1 sur chaque ligne et aller pour Edit -> Column Editor et sélectionnez le Number to Insert puis mettez 1 dans le champ de numéro initial et 1 dans le champ d’incrémentation et vérifiez les nombres de zéro et cliquez sur ok

Félicitations, vous l’avez fait 🙂

http://docs.notepad-plus-plus.org/index.php/Inserting_Variable_Text

Notepad ++ est équipé d’un éditeur Edit -> Colonne “Alt + C” qui peut travailler sur une sélection rectangular de deux manières différentes: Coledit.png insertion de texte fixe sur chaque ligne incluant et suivant la ligne courante, dans la colonne de l’insertion point (aka caret). Initialement, le texte sélectionné est laissé intact. Comme l’illustre l’image, une série linéaire de nombres peut être insérée de la même manière. La valeur de départ et l’incrément doivent être fournis. Le remplissage gauche avec des zéros est une option, et le nombre peut être entré en base 2, 8, 10 ou 16 – c’est ainsi que les valeurs calculées seront également affichées, le remplissage étant basé sur le plus grand.

(Affichage au cas où quelqu’un pourrait en avoir un usage).

Je cherchais une solution à un problème un peu plus sophistiqué que OP – remplacer CHAQUE occurrence de quelque chose avec le numéro par la même chose avec un nombre incrémenté

Par exemple, remplacer quelque chose comme ceci:

      

Par ça:

      

Impossible de trouver la solution en ligne alors j’ai écrit mon propre script dans groovy (un peu moche mais fait le boulot):

  /** * 

Finds words that matches template and increases them by 1. * '_' in word template represents number. * *

Eg if template equals 'Row="_"', then: * ALL Row=0 will be replaced by Row="1" * All Row=1 will be replaced by Row="2" *

Warning - your find template might not work properly if _ is the last character of it * etc. *

Requirments: * - Original text does not contain tepmlate ssortingng * - Only numbers in non-disrupted sequence are incremented and replaced * (ie from example below, if Row=4 exists in original text, but Row=3 not, than Row=4 will NOT be * replaced by Row=5) */ def replace_inc(Ssortingng text, int startingIndex, Ssortingng findTemplate) { assert findTemplate.contains('_') : 'search template needs to contain "_" placeholder' assert !(findTemplate.replaceFirst('_','').contains('_')) : 'only one "_" placeholder is allowed' assert !text.contains('_____') : 'input text should not contain "______" (5 underscores)' while (true) { findSsortingng = findTemplate.replace("_",(startingIndex).toSsortingng()) if (!text.contains(findSsortingng)) break; replaceSsortingng = findTemplate.replace("_", "_____"+(++startingIndex).toSsortingng()) text = text.replaceAll(findSsortingng, replaceSsortingng) } return text.replaceAll("_____","") // get rid of '_____' character } // input findTemplate = 'Row="_"' path = /C:\TEMP\working_copy.txt/ startingIndex = 0 // do stuff f = new File(path) outText = replace_inc(f.text,startingIndex,findTemplate) println "Results \n: " + outText f.withWriter { out -> out.println outText } println "Results written to $f"

Vous pouvez le faire en utilisant Powershell via regex et foreach loop, si vous stockez vos valeurs dans le fichier input.txt :

 $initialNum=1; $increment=1; $tmp = Get-Content input.txt | foreach { $n = [regex]::match($_,'id="(\d+)"').groups[1 ].value; if ($n) {$_ -replace "$n", ([int32]$initialNum+$increment); $increment=$increment+1;} else {$_}; } 

Après cela, vous pouvez stocker $ tmp dans le fichier en utilisant $tmp > result.txt . Cela n’a pas besoin de données pour être dans les colonnes.