drucken bestimmter Bereich von der ersten Zeile in die Datei mit awk
Ich habe eine Datei (logins.txt), die ich brauche, um in eine Datei, die zeigt nur das erste und das Letzte login-Datum/Uhrzeit und die Letzte login-Datum/Uhrzeit. Die logins.txt sieht wie folgt aus:
Feb 13 2:43 (login IP)
Feb 13 2:48 (login IP)
Feb 13 5:23 (login IP)
Feb 13 9:43 (login IP)
Feb 14 1:34 (login IP)
Feb 14 8:42 (login IP)
Feb 14 8:47 (login IP)
Will ich drucken:
First Login: Feb 13 2:43
Last Login: Feb 14 8:47
Jetzt halten Sie im Verstand ich bin mit ein .awk-Datei, wo ich alle meine awk-Anweisungen, die ausgeführt wird, in logins.txt und macht eine andere Datei mit dem, was ich ausdrucken möchten.
Dem letzten einloggen war einfach. Ich habe einfach nur gesagt:
END{
print "$1, $2, $3";
}
Welche druckt die Letzte Stelle der Felder.
Aber wie mache ich es mit dem ersten vorkommen?
BEARBEITEN:
Genial, putting-NR==1 funktioniert, aber ich BRAUCHE diese im Feld ENDE, weil ich es brauche unter anderen Sachen, die ich drucken möchte. Wie bringe ich es unter alles?
Auch ich möchte Sie zum drucken so:
Blah blah blah blah blah blah blah blah
Blah blah blah blah blah blah blah blah
Blah blah blah blah blah blah blah blah
First Login: Feb 13 2:43 Last Login: Feb 14 8:47
Hier ist mein ENDE mit print-Anweisungen
NF==1 {a=$1; b=$2; c=$3;}
END{
print "Feed\t\t\tAccepted\tRejected\tCanceled";
print "-----------------------------------------------------------------";
print "swrinde:\t\t", accepted_sw"\t\t", rejected_sw"\t\t", canceled_sw"\t\t";
print "news.cais.net:\t\t", accepted_ne"\t\t", rejected_ne"\t\t", canceled_ne"\t\t";
print "\?:\t\t\t", accepted_un"\t\t", rejected_un"\t\t", canceled_un"\t\t";
print "\nStart Time = ", a, b, c RS "\tEnd Time =", $1, $2, $3;
}
InformationsquelleAutor Fred Lohrman | 2013-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Qualifizieren, ein weiterer block mit
NR==1
:Ergebnisse:
NR
ist die Abkürzung für Anzahl der Zeilen. Sehen hier. HTH.EDIT1:
Hier zwei Möglichkeiten, je nach Stil. Die erste wäre mehr als richtig:
Ergebnisse:
EDIT2:
Führen Sie Ihr Skript wie:
Inhalt
script.awk
:EDIT3:
Ergebnisse:
Die Verwendung von Variablen zu speichern, was Sie wollen. Dann drucken, wenn Sie benötigen. Ich aktualisiert meine obige Antwort. HTH.
Der erste Weg einfach ausgedruckt leere Flecken und ich kann jetzt nicht die zweite Möglichkeit, denn ich brauche die beiden Ersten Anmeldung und des Letzten Logins, um sich am ENDE{} ich Schätze deine Hilfe!
Ich könnte haben, geben Sie es in anders da bin ich mit einer script-Datei. Ich weiß, dass ich offensichtlich nicht put 'awk' vor, wenn mit Hilfe einer script-Datei, aber gibt es etwas, was ich ändern muss? Noch immer Leerstellen auf der Ersten Anmeldung. Auch immer noch nicht, setzen Sie Sie nebeneinander.
Ich war in der Lage, es zu bekommen nach unten, vielen Dank für deine Hilfe Steve!
InformationsquelleAutor Steve
getestet hier
InformationsquelleAutor Vijay
Versuchen Sie es auch mit einer variable für den letzten login, da nicht jedes awk behält sich das Feld Werte in dem Abschnitt am ENDE. Zum Beispiel:
InformationsquelleAutor Scrutinizer