nightkiller Geschrieben 7. Mai Geschrieben 7. Mai Moin Ihr, Ich sitz hier grad inna Umschulung Fisi und unser Dozent hat uns eine Aufgabe gegeben, welche er selber nicht lösen kann. (Ein hoch auf alle die Dr. Heuer so hochleben lassen) Ich hab jetzt nach 2 Stunden auch aufgegeben, aber ich will trotzdem wissen ob und wie das geht Vielleicht ja ja hier wer eine Idee. Gruß Nighty Zitat Und noch eine Knobelaufgabe Es müssen noch Kurznamen für die Rechner generiert werden, damit das Format der Datei mit dem Format der Datei /etc/hosts übereinstimmt. So soll jede Zeile folgendes Format haben: 192.168.11.1 Enterprise.starfleet.org Enterprise Datei hostlist 192.168.11.1 Enterprise.starfleet.net 192.168.11.2 Yorktown.starfleet.net 192.168.11.3 Intrepid.starfleet.net 192.168.11.4 Farragut.starfleet.net 192.168.11.5 Hood.starfleet.net 192.168.11.6 Defiant.starfleet.net 192.168.11.7 Reliant.starfleet.net Zitieren
allesweg Geschrieben 7. Mai Geschrieben 7. Mai Wie lautet dein bisheriger Ansatz? Dr. Octagon reagierte darauf 1 Zitieren
inteldenim Geschrieben 7. Mai Geschrieben 7. Mai (bearbeitet) Hallo, ungetestet. public void AppendHostnamesToHostsFile(string filePath) { string[] lines = File.ReadAllLines(filePath); List<string> updatedLines = new List<string>(); foreach (string line in lines) { if (!string.IsNullOrWhiteSpace(line) && !line.Contains('#')) // Leere Zeilen, Kommentare skippen { var parts = line.Split(' '); if (parts.Length == 2 && parts[1].Contains(".")) { string ip = parts[0]; string fullName = parts[1]; // FQDN string shortName = fullName.Split('.')[0]; // Hostname updatedLines.Add($"{ip} {fullName} {shortName}"); } else { updatedLines.Add(line); //Sonstige Zeilen unverändert } } } File.WriteAllLines(filePath, updatedLines.ToArray()); } Bearbeitet 7. Mai von inteldenim Gurki und Dr. Octagon reagierten darauf 2 Zitieren
Chris-Info Geschrieben 7. Mai Geschrieben 7. Mai Schaut für mich im Grunde erst mal valide aus. Einlesen, Zeile am Leerzeichen splitten, dann den Teil mit dem Namen an den Punkten splitten und die erste Stelle des Splits an die Zeile anhängen. Was bei sowas natürlich auch immer ne saubere Lösung ist, ist Regular Expressions zu verwenden. Wobei ich aber keine Ahnung habe, wie die Syntax da aussieht. Aber letztlich wäre die Regular Expression wohl was in de Richtung: Beginne nach dem Leerzeichen und gib alle Buchstaben bis zum ersten Punkt. Dr. Octagon reagierte darauf 1 Zitieren
nightkiller Geschrieben 7. Mai Autor Geschrieben 7. Mai Danke für eure Antworten. Wir haben es endlich hinbekommen. sed -e 's/\(\w*\)\(.starfleet.net\)/ &\t\1/' hostlist Zitieren
Dr. Octagon Geschrieben 7. Mai Geschrieben 7. Mai An dieser Stelle sei einmal anzumerken, dass keiner der Antwortenden bei der gestellten Frage direkt von einer Lösung in einer Kommandozeile ausging. Klar, die "Schüler dieses Lehrers" wissen es direkt, weil gerade Thema, andere „Unwissende“ hätten jetzt auch SED vorher googeln können, aber eigentlich: Frage mich, wie viel Potential und Lebenszeit für unklar gestellte Fragen im Internet pro Sekunde unnütz draufgehen. Thanks-and-Goodbye und Enno reagierten darauf 1 1 Zitieren
Chris-Info Geschrieben 7. Mai Geschrieben 7. Mai vor 3 Stunden schrieb Dr. Octagon: „Unwissende“ hätten jetzt auch SED vorher googeln können Hab ich gemach, war mir aber zu politisch. Meadril, treffnix und allesweg reagierten darauf 2 1 Zitieren
nightkiller Geschrieben 8. Mai Autor Geschrieben 8. Mai vor 13 Stunden schrieb Dr. Octagon: An dieser Stelle sei einmal anzumerken, dass keiner der Antwortenden bei der gestellten Frage direkt von einer Lösung in einer Kommandozeile ausging. Klar, die "Schüler dieses Lehrers" wissen es direkt, weil gerade Thema, andere „Unwissende“ hätten jetzt auch SED vorher googeln können, aber eigentlich: Frage mich, wie viel Potential und Lebenszeit für unklar gestellte Fragen im Internet pro Sekunde unnütz draufgehen. Da muss ich dir grundsätzlich recht geben. Wenn der Kopf bereits dampft kann man sowas schonmal vergessen zu bedenken. Also verzeiht einem alten Mann Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.