J'ai une sortie d'un journaliste de test qui renvoie des résultats joliment colorés et des déchets divers dont je veux me débarrasser. J'ai essayé d'utiliser sed via:

karma start tests/karma.conf.js | sed 's|var.*browserify||'

... qui supprime les fichiers indésirables, mais tue également les résultats colorés. Comment puis-je les conserver?

Voici un exemple de la sortie brute avant sed:

^[[1A^[[2KERROR: 'Unhandled promise rejection' /var/folders/xs/wmmjbz4s6mdgcqynwn46qtmr0000gn/T/799ac09c665c85beb20f6d99be27c1cf.browserify?c65c8d7afc187ee2ed8307a171bc8e1511bfb40b:91625:48)
2
Allyl Isocyanate 24 déc. 2015 à 00:07

2 réponses

Meilleure réponse

.* correspondra à tout, y compris les codes de couleur.

Si vous ne voulez pas les faire correspondre, utilisez une expression régulière plus spécifique, par exemple une plage de caractères.

1
Karoly Horvath 23 déc. 2015 à 21:30

Pour l'exemple donné,

/var/folders/xs/wmmjbz4s6mdgcqynwn46qtmr0000gn/T/799ac09c665c85beb20f6d99be27c1cf.browserify

Un modèle plus spécifique peut être l'un de ceux-ci, en utilisant des classes de caractères:

sed 's|var[^[:cntrl:]]*browserify||'
sed 's|var[[:alnum:]./]*browserify||'

J'utiliserais ce dernier, car cela éliminerait la possibilité de sauter un chemin complet (si plus d'un était donné sur une ligne).

1
Thomas Dickey 23 déc. 2015 à 22:46