automatisch editieren mit sed
automatisch editieren mit sed
hallo
möchte mit sed automatisch
die datei profile editieren
den wert 022 auf 027 stellen
sodas 027 dauserhaft in der datei eingetragen
bleibt
auch nach dem booten
sed -e '18 s/\<022\>/027/' profile
mit dieser anweisung wird der wert zwar
auf 027 gestellt aber
er wird nicht fix gepeichert
wie kann ich mit sed die datei neu
speichern oder überschreiben ?
mit
sed -e '18 s/\<022\>/027/' profile | > profile
wird die datei zwar überschrieben
aber die ist dann leer ?
gruß
fenster
möchte mit sed automatisch
die datei profile editieren
den wert 022 auf 027 stellen
sodas 027 dauserhaft in der datei eingetragen
bleibt
auch nach dem booten
sed -e '18 s/\<022\>/027/' profile
mit dieser anweisung wird der wert zwar
auf 027 gestellt aber
er wird nicht fix gepeichert
wie kann ich mit sed die datei neu
speichern oder überschreiben ?
mit
sed -e '18 s/\<022\>/027/' profile | > profile
wird die datei zwar überschrieben
aber die ist dann leer ?
gruß
fenster
Code: Alles auswählen
sed -e '18 s/\<022\>/027/' profile >profile.tmp && mv profile.tmp profile
- SubOptimal
- Beiträge: 1709
- Registriert: 10.01.2005 23:25:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: bei Frankfurt
Hi fenster,
warum wird denn bei Dir die /etc/profile bei jedem booten neu erstellt? Eigentlich sollte es doch reichen die umask dort einzutragen und dann ist sie immer so da drin.
Lesen und schreiben in die gleiche Datei funktioniert halt nicht. Du kannst es nur über eine temporäre Datei lösen.
z.B. folgende Zeile in Dein Skript aufnehmen:
SubOptimal
warum wird denn bei Dir die /etc/profile bei jedem booten neu erstellt? Eigentlich sollte es doch reichen die umask dort einzutragen und dann ist sie immer so da drin.
Lesen und schreiben in die gleiche Datei funktioniert halt nicht. Du kannst es nur über eine temporäre Datei lösen.
z.B. folgende Zeile in Dein Skript aufnehmen:
Code: Alles auswählen
exec `f=\`mktemp\`; cp /etc/profile $f; sed 's/022/027/' $f > /etc/profile; rm $f`
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Code: Alles auswählen
sed -e '18 s/\<022\>/027/' -i profile
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
- SubOptimal
- Beiträge: 1709
- Registriert: 10.01.2005 23:25:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: bei Frankfurt
Danke auch, kannte ich auch noch nicht.SubOptimal hat geschrieben: danke für den Tipp. '-i' kannte ich auch noch nicht. Man nimmt halt immer zuerst das was schon immer ging.
l
Nur frage ich mich warum bei debian/sarge zu sed eine völlig veraltete manpage zu finden ist (Juli 93). Unter RH EL ES 3 habe ich die gleiche sed version (4.0.7) aber eine manpage vom April 2003
- SubOptimal
- Beiträge: 1709
- Registriert: 10.01.2005 23:25:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: bei Frankfurt