J'utilise linux et bash. J'ai un fichier texte avec le contexte généré en cours d'exécution par un autre programme. La longueur, le nombre de lignes et le contenu du fichier texte ont changé de temps en temps. Mais il y a un certain modèle inchangé dans le texte, un exemple typique estcherchant un moyen d'extraire un motif à partir d'un fichier texte dans Linux
123098230984LD # 2e3 123098230984LD # 23234 XER_3424324_23424 33: 34: 35: noeud: 9-72-1408 $ 1231313 * 3435322 lien vers le port: 323 3424242424LD # 2234 332424LD # 23424234
ici, je veux extraire le modèle "noeud: NUMERO dE NUMÉRO NUMÉRO" et "port: NUMBER" mais où il se produit dans le texte varie de de temps en temps aussi. Maintenant, je extrait manuellement l'information. Je me demande s'il existe un moyen d'extraire l'information automatiquement. Ce qui rend vraiment difficile le contenu change à chaque fois que le fichier est généré.
merci. J'ai essayé la commande mais elle ne semble pas fonctionner dans mon système. Je ne sais pas pourquoi, il n'y a pas d'option -E dans sed et la version pour sed dans mon système est GNU sed version 4.1.5. J'essaye man sed, il n'y a que -e ou -expression, j'ai essayé ça aussi, mais ça ne me donne pas le résultat attendu. Il montre "sed: -e expression # 1, char 57: référence invalide \ 2 sur RHS de la commande" s "" – user1285419
@ user1285419, essayez d'utiliser '-r' pour les expressions rationnelles étendues plutôt que le' -E'. '-E' fonctionne sur GNUsed4.2.1 même si ce n'est pas dans la page de manuel. Sinon, vous devrez modifier légèrement les expressions rationnelles.Je vais mettre à jour la réponse. – paxdiablo
@ user1285419: plus loin, le commutateur '-E' a été ajouté à la version 4.2, ce qui explique pourquoi votre 4.1.x ne l'a pas. Cependant, depuis 4.1.0 a '-r', vous pouvez simplement utiliser cela à la place. – paxdiablo