Essayer de rechercher plusieurs numéros de téléphone à une heure donnée

0

Je travaille dans une entreprise de télécommunications et, dans certains cas, je dois rechercher plusieurs numéros à une heure précise. j'utilise Serveur Ubuntu 10.04 . Lorsque je recherche un appel, mon expression normale est:

grep 5555551234 20120719-12*

20120719-12* est la date et l’heure (GMT) du numéro que je cherche.

Quand j'utilise

grep 5555551234 20120719-18* | 5555551235 20120719-18*

Je vais seulement obtenir un retour sur le premier numéro

Si j'utilise

grep 5555551234 | 5555551235 20120719-18*

je reçois -sh 5555551235 not found

Tout commentaire serait apprécié..


la source

Réponses:

0

Le caractère de pipe ( | ) a une signification particulière pour grep et votre shell. Utilisez des guillemets pour vous assurer que le shell le transmet à grep sans être mêlé.

Ben Voigt
la source
0

Vous devrez utiliser expressions régulières .

Dans votre cas spécifique, vous pouvez utiliser:

grep -E '(5555551234|5555551235) 20120719-18'

Remarques:

  • -E dit à grep d'utiliser extended regular expressions
  • N'oubliez pas le '
  • Ne pas mettre le * à la fin de l'expression

Juste pour clarifier pourquoi vous avez cette erreur: | est une pipe ce que signifie fondamentalement sh va rediriger la sortie de la première application vers l'entrée de la seconde, dans ce cas 5555551235, mais sh ne peut pas trouver 5555551235, donc l'erreur.

fmanco
la source