1 votes

Suppression de tous les sauts de ligne entre deux variables correspondantes dans notepad++.

J'essaie de créer un tableau à partir d'un tas de texte, mais ça me donne mal à la tête. En gros, voici une idée de ce qui se passe :

    matchingvariablelengthupccode1 productdescription1 value value value value value value value value matchingvariablelengthupccode1

matchingvariablelengthupccode2 product
description2 value value value value value value value value value matchingvariablelengthupccode2

Et la description du produit comporte parfois des sauts de ligne de façon aléatoire. De plus, les codes upc à la fin et au début correspondent les uns aux autres, mais sont uniques pour chaque produit.

Même après avoir réglé ce problème, je devrai trouver un moyen de gérer les descriptions de produits qui comportent des espaces mais qui sont censées être sur une seule colonne alors que les valeurs et les codes upc sont déjà délimités par des espaces. De plus, les descriptions de produits commencent parfois par un chiffre, ce qui rend les choses plus difficiles.

J'essaie d'utiliser l'expression rationnelle dans notepad++ mais c'est un problème très compliqué.

0voto

miroxlav Points 11663

Il existe un moyen sans programmation.

Partie 1 : Mettre chaque enregistrement sur une seule ligne en remplaçant les sauts de ligne dans les descriptions des articles par des espaces.

Partie 2 : Supprimez les codes UPC de fin de ligne.

Partie 3 : Convertir les N premiers mots délimités par des espaces en colonnes, le reste (>N) en dernière colonne.


Préparation : Utilisez Trouvez commande (set Mode de recherche a Normal ) pour trouver un caractère unique qui n'apparaît pas dans le fichier. Je vais utiliser # . Si vous en avez trouvé un autre, veuillez adapter les étapes ci-dessous en conséquence.

Partie 1 :

Étape 1 :

Utilisez la recherche/remplacement par regex :

Trouvez quoi : (\R)(\d+\l* )

Remplacer par : #\1 (notez notre caractère spécial)

Mode de recherche : Expression régulière

". correspond à une nouvelle ligne" : Non vérifié

Chaque code CUP a un préfixe # à ce point au début de la ligne.

Étape 2 :

Trouvez quoi : \R

Remplacer par : (espace unique)

Mode de recherche : Expression régulière

". correspond à une nouvelle ligne" : Non vérifié

Tout le texte est maintenant sur une seule ligne.

Étape 3 :

Trouvez quoi : # (notez notre caractère spécial)

Remplacer par : \r\n

Mode de recherche : Expression régulière

". correspond à une nouvelle ligne" : Non vérifié

Tous les dossiers sont maintenant sur leurs lignes. Corrigez les exceptions manuellement, s'il y en a.

Partie 2 :

Étape 1 :

Utilisez la recherche/remplacement par regex :

Trouvez quoi : ^(.*) (.*)$

Remplacer par : \1

Mode de recherche : Expression régulière

". correspond à une nouvelle ligne" : Non vérifié

Le dernier mot de chaque enregistrement (censé être un code UPC) a été supprimé.

Partie 3 :

Étape 1 :

Utilisez la recherche/remplacement par regex :

Trouvez quoi : ^(.*?) (il y a un espace après ) )

Remplacer par : \1# (notez notre caractère spécial)

Mode de recherche : Expression régulière

". matches newline" : Non vérifié

Le premier espace sur la rangée est maintenant # .

Étape 2 :

Répétez l'étape 1 jusqu'à ce que tous les espaces entre les colonnes (mais pas dans les descriptions de produits) soient transformés en # 's.

Les espaces sont maintenant uniquement dans les descriptions de produits. Il y a # entre toutes les colonnes.

Étape 3 :

Collez tous les enregistrements dans Microsoft Excel et utilisez l'assistant d'importation de texte pour importer vos valeurs dans le tableau.

Type de données : Délimité (pas de largeur fixe)

Délimiteur : Autre : # (décochez tous les autres choix de délimiteurs !)

Vous avez vos données en colonnes dans Excel.

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