2009-12-14 11 views
0

J'ai des fichiers de configuration avec des centaines de lignes de données chacun.Commencez chaque nouvelle ligne avec un caractère (à moins qu'il ne commence déjà par ce caractère)

Je voudrais commencer chaque ligne (après le retour chariot) avec un signe dièse ('#') sauf si cela commence déjà avec un signe dièse. Je ne veux pas faire une recherche + remplacer parce que j'ai d'autres parties du fichier qui ne sont pas le début d'une ligne.

Ainsi, par exemple, ceci:

Some data #some comment 
Some more data #some other comment 
Even more data 
#some line comment 

se transformerait en:

#Some data #some comment 
#Some more data #some other comment 
#Even more data 
#some line comment 

Répondre

6

Utilisez la recherche -> Remplacer fonction, mais le mettre en mode normal d'expression et match sur débuts en ligne:

Find What: ^([^#].*) 
Replace With: #\1 

Ceci correspondra à une ligne et à tout ce qu'il contient, mettez-la dans \1, puis remplacez-la avec un # suivi de ce qui a été mis en \1 (la ligne entière).

+0

Merci! Cela fonctionne lorsque je clique sur "Remplacer" mais il me crie quand je clique sur "Remplacer tout" en disant: "L'expression régulière à rechercher est mal formée". Des pensées? – mheathershaw

+0

Hm. Je viens de l'essayer moi-même et de remplacer tout fonctionne bien. Quelle version de NPP utilisez-vous? – Amber

+0

C'est la version 5.6.1. – mheathershaw

1

Essayez de trouver et remplacer cette expression régulière (en mode regex):

^([^#]) 

et remplacer tous avec #\1. (Édité avec commentaires de Dav - merci)

+0

Merde, juste pas assez rapide :) – Skilldrick

+0

Un seul problème avec votre regex - il remplacerait le premier caractère sur la ligne, au lieu de juste ajouter un «#». Vous devez placer un groupe de capture autour de ce '[^ #]', puis ajouter le caractère capturé au terme de remplacement. – Amber

+0

Ou vous pourriez faire un avant-regard. –

0
  1. changer la langue à Perl (Alt, L, P, DOWN)
  2. Sélectionner tout (CTRL-A)
  3. Block Comment (CTRL-Q)
  4. Changer la langue retour

Modifier: none mind. Ne pas ignorer les lignes déjà commentées. Tant pis.

Questions connexes