Grep Regex - Vorgehensweise

Grep Regex - Vorgehensweise

Hallo, ich habe eine Datei mit 5-stelligen Postleitzahlen.

Ich versuche, mit grep die Postleitzahlen zu drucken, die mit 9 beginnen und nur Ziffern zwischen 4 und 7 enthalten können

Der Befehl, den ich verwende, ist

grep '[4-7], 9'$ zipcodesDataEntry.cvs

Das Problem ist, dass ich Postleitzahlen mit den Ziffern 1, 2, 3 und 8 erhalte. Meine Ausgabe sollte folgendermaßen aussehen:

95544
94554
94445
95567

Ich erhalte jedoch einige Postleitzahlen wie:

91121
92231 

Ich versuche, alle Zahlen auszuschließen, die nicht 9 sind und im Bereich von 4-7 liegen

Antwort1

Angesichts dieser Indatei:

cat zipcodes 
95544 94554 94445 92231 95567 91121

Ich kann dieses Grep verwenden:

egrep -o '9[4-7]{4}' zipcodes 
95544
94554
94445
95567

Antwort2

Inhalt der Eingabedatei:

95544 
94554 
94445 
95567
91121 
92231

Mit awk(falls egrepnicht verfügbar) können Sie Folgendes versuchen:

awk '/9[4-7]{4}/' zip.txt

Ausgabe:

95544 
94554 
94445 
95567

Antwort3

grep '^9.[4-7].*' zipcodesDataEntry.cvs

  1. ^ Der Anfang der verglichenen Zeichenfolge
  2. . (Punkt) entspricht jedem Zeichen
  3. Sternchen, Null oder mehr

verwandte Informationen