Veröffentlicht 7. Mai 20241 j 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
7. Mai 20241 j 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 20241 j von inteldenim
7. Mai 20241 j 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.
7. Mai 20241 j Autor Danke für eure Antworten. Wir haben es endlich hinbekommen. sed -e 's/\(\w*\)\(.starfleet.net\)/ &\t\1/' hostlist
7. Mai 20241 j 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.
7. Mai 20241 j vor 3 Stunden schrieb Dr. Octagon: „Unwissende“ hätten jetzt auch SED vorher googeln können Hab ich gemach, war mir aber zu politisch.
8. Mai 20241 j Autor 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.