2017-11-13 2 views
0

habe ich versucht,Ich möchte Dateien zwischen Datenbereich Muster filtern

awk '$6 ~ /^2017-04-01/,/^2017-04-11/' filename 

und eine andere Art und Weise

awk '$6~/^2017-07-04/, $6~/^2017-07-10/' filename 

Aber es angezeigt, alle Monatsdaten. Welche Änderungen sollten vorgenommen werden, um Dateien mit Datumsbereich zu filtern?

+0

formatieren Sie Ihre Frage, siehe https: //stackoverflow.com/editing-help ... Fügen Sie Beispiel-Eingabedaten und erwartete Ausgabe hinzu ... siehe auch https://stackoverflow.com/questions/38972736/how-to- select-lines-between-two-patterns für die Verwendung von Flags – Sundeep

+0

Können Sie bitte einige Beispiel-Eingabedaten zusammen mit den Ergebnissen, die Sie bekommen, und den Ergebnissen, die Sie suchen, basierend auf diesem Beispiel hinzufügen? Es ist sehr schwierig, Ihr Problem zu diagnostizieren, wenn wir kein Problembeispiel haben, das repliziert werden kann. – ghoti

Antwort

1

Sie können es auf diese Weise schreiben

awk '"2017-04-01" <= $6 && $6 <= "2017-04-11"' file 

für regex Sie den Bereich als Muster

awk '$6~/^2017-04-(0[1-9]|1[01])/' file 

jedoch implementieren sollten, denke ich, die erste Alternative ist sauberer, aber auch schneller.

+0

Hey Danke all deine Antwort. awk '"2017-04-01" <= $ 6 && $ 6 <= "2017-04-11"' Befehl hat die korrekten Ergebnisse wie erwartet erhalten. – Rameshkrishnan

Verwandte Themen