Servus,
ich habe eine Datei in der folgendes steht:
username=y1128 password=hdsfe45f
Kann ich per konsole einen Befehl oder Script ausführen, der mit nach Password= alles neu ersetzt?
Gruß Alecane
![]() Anmeldungsdatum: Beiträge: Zähle... |
Servus, ich habe eine Datei in der folgendes steht: username=y1128 password=hdsfe45f Kann ich per konsole einen Befehl oder Script ausführen, der mit nach Password= alles neu ersetzt? Gruß Alecane |
||||
![]() Anmeldungsdatum: Beiträge: 685 Wohnort: Bremen |
das geht mit Baustelle/sed |
||||
Anmeldungsdatum: Beiträge: 86 |
Moin! Genau, der sed ist das Mittel der Wahl. Ich habe mich sehr schwer getan mit dem sed, deshalb als kleine Starthilfe: sed -e 's/passwd=.*/passwd=neues_passwort/g' original_datei > neue_datei Aber Obacht - durch das 'g' am Ende ersetzt der sed dir jeden Eintrag, der auf '*passwd=.*' passt... Frohes Schaffen! |
||||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 213 |
moelledi schrieb:
Sehr Vielen Dank, ich kannte zwar sed, aber kontne nicht gut damit umgehen 😉 Gruß Kugel |
||||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 213 |
Eine frage noch, wenn ich diesen
Befehl eingebe wird es so richtig angehängt, aber mit diesen
wird die datei ganz geelert. nur das >> ist durch ein > getauscht. EDIT: Erledigt, das liegt an der Logik. Die geöffnette Datei kann nicht gelöscht und geschrieben werden. |
||||
![]() Anmeldungsdatum: Beiträge: 685 Wohnort: Bremen |
einfach ab > weglassen dann arbeitet er in der Originaldatei |
||||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 213 |
HeinzBoettjer schrieb:
Was aber in der Datei selbst nicht gespeichert/geändert wird, nur bei der ausgabe. Also wenn ich danach ein cat auf meien datei mache ist diese wie unverändert. |
||||
![]() Anmeldungsdatum: Beiträge: 685 Wohnort: Bremen |
Sorry das habe ich nicht verstanden. Ich habe mal ein Beispiel mit dem ich bei der Umstellung von einer sqlite-Datenbank nach mysql gearbeitet habe: sed -i "s/VARCHAR(1024/VARCHAR(996/g" collection.sql; Das war eine 300 MB-Datei da hatte ich kein Platz für eine Ausgabedatei. |
||||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 213 |
Also, ich erstelle die datei test in der passwor=password drinn steht. nun führe ich folgenden Befehl aus:
beim ausführen des Befehls hat es geklappt, aber in meien datei wurde dies nicht geschrieben. |
||||
Anmeldungsdatum: Beiträge: 2159 |
Dann hätte es auch nicht mit "-i" gehen sollen. "-i" ändert die Datei nicht wirklich "inplace" sondern erstellt eine neue Datei "unter der Haube".
Du musst die Option "-i" nutzen damit die änderungen in der Datei gemacht werden. |
||||
![]() Anmeldungsdatum: Beiträge: 685 Wohnort: Bremen |
Ersetzte mal das -e durch -i. Laut sed --help steht das für --in-place[=Suffix]
|
||||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 213 |
Sid Burn schrieb:
Sehr Cool, das ist ja noch Besser und ich habe in meinem Script schon so viel kopiert und umbenannt, 😀 Danke Sehr, Funktioniert einwandfrei |
||||
![]() Anmeldungsdatum: Beiträge: 685 Wohnort: Bremen |
Sid Burn schrieb:
Vielleicht hat er die Temporäre Datei ja da gespeichert wo Platz war. |
||||
Anmeldungsdatum: Beiträge: 2159 |
HeinzBoettjer schrieb:
Es wird eine Temp Datei im gleichen Verzeichniss erzeugt. Diese woanders zu erzeugen wäre eher Nachteilig. Und "irgendwo" suchen macht kein programm, der einzige andere ort wäre "/tmp". |
||||
![]() Anmeldungsdatum: Beiträge: 685 Wohnort: Bremen |
Wir werden OT. /home ist bei mir eine andere Partition als /tmp und die Datei war auf dem Desktop. Egal, es hat damals funktioniert und es funktioniert bei Threadersteller. |