Versuchen, mehrere Telefonnummern zu einem bestimmten Zeitpunkt zu erfassen

0

Ich arbeite in einer Telekommunikationsfirma und in einigen Fällen muss ich zu einer bestimmten Zeit nach mehreren Nummern suchen. ich benutze Ubuntu Server 10.04 . Wenn ich nach einem Anruf suche, ist mein normaler Ausdruck:

grep 5555551234 20120719-12*

Woher 20120719-12* ist das Datum und die Uhrzeit (GMT) für die gesuchte Nummer.

Wenn ich benutze

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

Ich bekomme nur die erste Nummer zurück

Wenn ich benutze

grep 5555551234 | 5555551235 20120719-18*

ich erhalte -sh 5555551235 not found

Über Feedback würde ich mich freuen.


quelle

Antworten:

0

Der Pipe-Charakter ( | ) hat sowohl für grep als auch für Ihre Shell eine besondere Bedeutung. Verwenden Sie Anführungszeichen, um sicherzustellen, dass die Shell sie an grep weitergibt.

Ben Voigt
quelle
0

Sie müssen verwenden Reguläre Ausdrücke .

In Ihrem speziellen Fall können Sie verwenden:

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

Anmerkungen:

  • -E sagt grep zu benutzen extended regular expressions
  • Vergiss das nicht '
  • Legen Sie nicht die * am Ende des Ausdrucks

Nur um zu klären, warum Sie diesen Fehler haben: | ist eine Pfeife, was im Grunde bedeutet sh Leitet in diesem Fall die Ausgabe der ersten Anwendung auf die Eingabe der zweiten um 5555551235, aber sh kann nicht finden 5555551235also der fehler.

fmanco
quelle