PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [BASH] Zeilen Löschen (SED spackt)



berlinermauer
06-01-2009, 20:51
Hi Leute,

ich habe mir ein Batch Script gemacht, dass in /etc/DATEINAME

ein paar Namen speichert, diese werden ausgelesen und die homeverzeichnisse gelöscht usw..

so nun :


sed -e "/$_user/d" /etc/teamspeaks_installed # Eintrag aus den INSTALLED TEAMSPEAKS entfernen

da bekomme ich keinen Fehler wenn ich aber mit cat /etc/teamspeaks_installed nachprüfe, ist der eintrag immer noch da.

Achja $_user ist die Zeile, die gelöscht werden soll

marcolino
06-01-2009, 23:29
Servus berliner,

Wenn du mit sed arbeitest, wird die Originaldatei nicht geändert, d.h. du musst sie nach dem bearbeiten überschreiben oder woanders hin leiten. Ich habe auch ein bischen mit sed rumgespielt und bei mir hat es so funktioniert (mit überschreiben):


sed '/$_user/d' /etc/teamspeaks_installed >/etc/teamspeaks_installed

Gruß

berlinermauer
06-01-2009, 23:34
tausend dank!!!

ich hatte gegoogled und nichts wirklich gutes gefunden und mir dann sowas zusammen geschustert :)

danke, nun gehts.

BLUESCREEN3D
07-01-2009, 11:26
Der Aufruf von marcolino löscht den gesamten Dateiinhalt.
Benutz den Parameter -i:

sed -e "/^$_user$/d" -i /etc/teamspeaks_installed
^ und $ sorgen dafür, dass die ganze Zeile passen muss. Ansonsten würde bei der Löschung des Benutzers "foo" auch "foobar" gelöscht werden.

jan61
07-01-2009, 19:43
Moin,


...bei mir hat es so funktioniert (mit überschreiben):


sed '/$_user/d' /etc/teamspeaks_installed >/etc/teamspeaks_installedGruß

Wie bluescreen3d schon schrieb: Das ist reiner Zufall, dass es bei Dir mal geklappt hat. Das Ergebnis hängt von der Dateigröße, den I/O-Puffern der beteiligten Programme, dem Cache und der Auslastung Deines Systems und vielen anderen Faktoren ab, auf die Du überhaupt keinen Einfluss hast. Wenn das Programm wie sed die Möglichkeit des "in place"-Editierens bietet, nimm dessen Optionen, sonst arbeite mit temp. Dateien. Beispiel hier: http://www.jan-trippler.de/de/script_tipps/files.html

Jan