238 votes

Notepad++ trouver et remplacer une chaîne par une nouvelle ligne

Considérez le scénario où vous avez une chaîne spécifique que vous souhaitez rechercher et remplacer. Vous voulez la remplacer par une nouvelle chaîne qui contient un caractère de saut de ligne (ou une séquence de caractères).

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

Dans le scénario ci-dessus, je souhaite trouver " xyz" et remplacer l'espace par un retour à la ligne.

Les résultats ressembleraient à ceci :

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red

etc...

Question: Comment réaliseriez-vous cela le plus facilement en utilisant Notepad++ ? Y a-t-il d'autres outils que vous recommanderiez pour exécuter facilement cette commande ?

309voto

caliban Points 19715

Notepad++ fera très bien l'affaire.

Chaîne de recherche:

 xyzNotez l'espace devant `xyz`.

Chaîne de remplacement:

\\r\\nxyz

Vous devrez également définir le "Mode de recherche" sur "Étendu" (dans le groupe en bas à gauche de la boîte de dialogue Remplacer) afin que Notepad++ prenne en compte les codes d'échappement.


Un peu de contexte : "\r\n" est le code d'échappement pour le retour chariot, la norme pour les nouvelles lignes sous Windows. Les systèmes de style Unix utilisent simplement \n (saut de ligne). La plupart des environnements de développement intégrés, Notepad++ inclus, comprendront les deux styles et les afficheront avec des nouvelles lignes, mais les utilitaires de base de Windows ne comprennent pas que \n est équivalent à \r\n, donc ce dernier est généralement le plus approprié si le fichier est destiné à être utilisé dans des environnements Windows.

2 votes

\r\n = syntaxe pour un saut de ligne sous Windows. Cependant, pour tout autre logiciel que le simple notepad, il acceptera simplement \n pour un saut de ligne (qui est également plus conventionnel).

3 votes

Votre phrase "plus conventionnelle" est trompeuse. "\r\n" est la norme sur Windows. C'est juste que de nombreux éditeurs et IDE semblent reconnaître la norme de fin de ligne Unix/Linux "\n" et affichent le document en conséquence. Rien dans "\n" ne le rend plus conventionnel.

0 votes

Pour être honnête, la version Win/DOS me semble plus logique. "\r" signifie "Retour chariot, ou 'Ramener le chariot/curseur au début de la ligne'" et "\n" signifie "Avancer le chariot/curseur d'une ligne en avant". Bien sûr, Unix est arrivé 20 ans avant, donc je suppose que dans ce sens, c'est Microsoft qui a rompu la norme.

65voto

th3dude Points 9375

Dans Notepad++, c'est très facile...

  • Rechercher : xyz

  • Remplacer par : \n

  • Mode de recherche : Étendu (\n, \t, etc.)

Le truc est de définir le mode de recherche.

1 votes

Cette réponse a fonctionné pour moi, celle acceptée n'a pas fonctionné. Ver 5.8.6

0 votes

Oui, même ici la réponse acceptée n'a pas précisé l'utilisation du mode étendu.

1 votes

Pourquoi ne pas \r\n (au lieu de \n)?

7voto

Austin Salonen Points 53

Je triche un peu lorsque je recherche des personnages que je ne peux pas taper directement dans les champs de texte (par exemple, des tabulations et des sauts de ligne). Trouvez un endroit dans le document où ce caractère est déjà présent, puis copiez-le et collez-le dans le champ de remplacement.

Donc, dans votre exemple, commencez au tout début d'une ligne, cliquez, faites glisser jusqu'au tout fin de la ligne précédente, copiez cela et collez-le dans la boîte de dialogue de remplacement.

7voto

TJ L Points 1899

Dans la boîte de dialogue "Remplacer", assurez-vous que sous Mode de recherche vous avez "Étendu" sélectionné. Ensuite, tapez dans la zone de recherche "xyz" et remplacez par "\n".

1 votes

Pourquoi ne pas utiliser \r\n (au lieu de \n) ?

4voto

dlux Points 4421

Pour Notepad++, changez le mode de recherche en Étendu, puis dans le champ Remplacer par, utilisez \n.

1 votes

Pourquoi ne pas \r\n (au lieu de \n) ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X