Ich möchte von dem Benutzer zwei Daten als Argument nehmen() mitTERMINE mit awk in UNIX
$./tool.sh --born-since <dateA> --born-until <dateB>
und aus einer Datei die Zeilen drucken, die zwischen diesen beiden dates.For Beispiel sind:
933|Mahinda|Perera|male|1989-12-03|2010-03-17T13:32:10.447+0000|192.248.2.123|Firefox
1129|Carmen|Lepland|female|1984-02-18|2010-02-28T04:39:58.781+0000|81.25.252.111|Internet Explorer
4194|Hồ ChÃ|Do|male|1988-10-14|2010-03-17T22:46:17.657+0000|103.10.89.118|Internet Explorer
Also, ich benutze awk Befehl wie folgt aus:
awk -F'|' '{print $4} [ file ... ]
die Daten zu nehmen .. wie ich awk können die Daten aus dem t machen xt zu Sekunden Form?
ok ich verstehe Ihren Punkt, aber wie werde ich die ganze Zeile nach dem Vergleich drucken? – user3217800
das ist es. Es wird standardmäßig die Zeile gedruckt, die die Bedingung erfüllt. Die Namen der Datumsvariablen wurden korrigiert. – karakfa
Ich habe diesen Code: 'dateA = Datum -d" $ 2 "+% Y% m% d DatumB = Datum -d" $ 4 "+% Y% m% d awk -F '|' -v von = $ dateA -v bis = $ dateB '{gsub ("-", "", $ 5); gsub ("-", "", dateA); gsub ("-", "", dateB)} von <= $ 5 && $ 5 <= zu 'persons.dat.txt' aber wenn ich das Skript ausführen, druckt es nur das DatumA und dateB – user3217800