Ich habe zwei Eingabedateien. Man hat Namelist, mm: dd Formular, Dauer der Nutzung und andere Host-Namen Zeug in jeder Zeile. Der andere ist derjenige, den ich generiert habe und der in jeder Zeile eine Namensliste hat, die sich nicht wiederholt. Ich versuche einen Shell-Befehl zu schreiben, um die Datei mit der Nameliste zu durchlaufen, sie als Variable zu speichern und mit der anderen Datei den Namen zu vergleichen und dann die Gesamtdauer der Benutzung für jede Person auszugeben und dann eine Datei auszugeben, die enthält und Information. Kann ich irgendwie awk oder irgendwas für die Arbeit benutzen?Verwenden Sie Shell, um eine Datei zu durchlaufen
Ich dachte der Befehl: für Wort in $ (Cat Namelist); echo $ word; done aber das ist nur für das Durchlaufen einer Datei. Was ich tun möchte, ist so etwas wie dieses:
for word in namelist.txt:
for words in info_file.txt (field $1):
if word == words:
(calculating usage of time)
print(word, ':', usage of time)
Ich habe bereits die Codes heraus die Verwendung von Zeit zu berechnen. Es ist nur, wie man diese Operation macht, das ist jetzt mein Problem. Könnte jemand bitte helfen?
----------------- weitere Erklärung So habe ich eine Datei mit Informationen über die Zeit, die der Benutzer für die Anmeldung in den Host verbraucht, dass jede Zeile die Informationen hat Name, Datum (mm: TT: hh: mm), Anfangszeit, Endzeit, Zeitdauer und Hostname. Was ich erreichen möchte ist, eine Datei mit jedem Monat als Titel auszugeben (zum Beispiel: [April]) und dann die Zeitdauer jedes Benutzers zu berechnen, der sich am Host anmeldet. Sie können mehrere Logins haben, daher erscheinen ihre Namen mehrmals mit den anderen Informationen in jeder Zeile. Ich habe diese Datei generiert, die alle Benutzernamen enthält, die während des letzten halben Jahres angemeldet wurden. Ich versuche, eine Ausgabedatei mit jedem Monatsnamen als Titel zu erstellen, gruppiere sie nach Monat und vergleiche dann die Namen in der Datei mit der von mir generierten Namensliste, um deren Zeitdauer zu berechnen und in die Ausgabedatei derselben Zeile zu drucken ihr Name wurde gedruckt. Ich habe bereits herausgefunden, wie man die Berechnungen durchführt. So jetzt ist es nur wie kann ich die Schritte passenden Namen zu tun, die mich
Eingabedatei verwirrt:
sdou pts/11 Thu Dec 10 05:24 - 12:11 (2+06:46) 131.243.186.99
sdou pts/10 Thu Dec 10 05:04 - 12:11 (2+07:06) 131.243.186.99
sdou pts/9 Thu Dec 10 03:26 - 12:11 (2+08:45) 131.243.186.99
ermartin pts/0 Sat Dec 12 12:37 - 13:44 (01:06) c-24-130-14-154.hsd1.ca.comcast.net
ermartin pts/0 Sat Dec 12 12:18 - 12:31 (00:13) c-24-130-14-154.hsd1.ca.comcast.net
Beispielausgabe:
[Dec]
sdou 94.xxxhours
ermartin 1.19hours
Ich bin mir nicht sicher, ob ich die Frage verstehe, aber Sie _may_ suchen nach dem [join] (http://linux.die.net/man/1/join) Dienstprogramm. – zwol
Ich untersuche gerade dieses Dienstprogramm. Vielen Dank! Und auch ich habe nur eine weitere Erklärung hinzugefügt – Edccccch
wird viel einfacher zu helfen, wenn Sie ** kleine ** Beispieldaten (3 Spalten Wert klingt wie es sollte genug sein), und erforderliche Ausgabe von diesen Daten. Verwenden Sie das Formatierungswerkzeug '{}' oben links im Bearbeitungsfeld für markierten Text, um es als Code/Daten/Ausgabe/ErrMsgs zu formatieren. Viel Glück. – shellter