Zeilen in Datei löschen, ohne sie neu erstellen zu müssen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von cmg, 07.04.2009.

  1. cmg

    cmg Mitglied

    Dabei seit:
    04.06.2008
    Beiträge:
    36
    Zustimmungen:
    0
    Hi,
    ich lösche momentan mit sed ein paar Zeilen aus der /etc/fetchmailrc.
    Das sed ist mit ein paar anderen Sachen in einem Shell-Script.
    Der Benutzer der das Script ausführt ist ein ganz normaler lokaler Benutzer.

    Ich habe nun ein kleines Rechte-Problem, weil die fetchmailrc normalweise nicht editieren kann, obwohl das Script das muss. Ich habe nun fetchmailrc Rechte gegeben, damit mein Script diese Datei editieren kann.

    Problem ist nun noch das Löschen von Zeilen, weil ich dafür ja quasi eine neue Datei erstellen muss, und das geht natürlich nicht in /etc/. Ich will auch nicht noch weiter die Rechte für den lokalen Benutzer ausweiten.

    Momenten lösche ich so: sed '23 d' fetchmailrc > f.txt
    rm fetchmailrc
    mv f.txt fetchmailrc

    Frage ist nun, gibts entweder was damit ich keine neuen Dateien erstellen muss beim Löschen von Zeilen. Oder bekomm ich das mit den Rechten irgendwie besser in den Griff?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. dmaphy

    dmaphy Routinier

    Dabei seit:
    16.04.2004
    Beiträge:
    482
    Zustimmungen:
    0
    Ort:
    Hamburg
    Wenn du komplette Zeilen löschen willst, schau dir doch mal grep - und da genauer den Switch -v - an. Vielleicht hilft dir das ja weiter. :)
     
  4. cmg

    cmg Mitglied

    Dabei seit:
    04.06.2008
    Beiträge:
    36
    Zustimmungen:
    0
    Ja, nur per grep habe ich ja das selbe Problem, nämlich eine zweite Datei...
     
  5. CMW

    CMW Hä ?!

    Dabei seit:
    24.07.2004
    Beiträge:
    517
    Zustimmungen:
    0
    Um bei deinem Ansatz zu bleiben:
    Code:
    fname=`date +%s%N`
    sed '23 d' fetchmailrc > /tmp/fetchmail$fname
    cat /tmp/fetchmail$fname > fetchmailrc
    rm /tmp/fetchmail$fname
    
     
  6. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    ich glaube, Du suchst
    Code:
    sed -i
     
Thema:

Zeilen in Datei löschen, ohne sie neu erstellen zu müssen

Die Seite wird geladen...

Zeilen in Datei löschen, ohne sie neu erstellen zu müssen - Ähnliche Themen

  1. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...
  2. .cfg Datei Analysieren und Zeilen Stellenweise abändern

    .cfg Datei Analysieren und Zeilen Stellenweise abändern: Hallo allesamt :) ich hab ein kleines Problem. Ich will mittels eines Shell Skriptes in einer Datei die Namensgebung einiger Geräte ändern. Ich...
  3. Script um bestimme Zeilen einer Datei auszulesen

    Script um bestimme Zeilen einer Datei auszulesen: Hallo, ich habe u.g Textfile. Daraus möchte ich für jeden Block (Beginnend mit id) eine Zeile mit der id, dem namen und den 2-4 WWPN in eine...
  4. Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

    Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql: Hallo Eventuell kann mir jemand bei meinem Problem helfen. Ich habe mich irgendwie total verrannt und komme nicht weiter. Die folgende...
  5. in eine Datei zeilenweise reinschreiben

    in eine Datei zeilenweise reinschreiben: Hallo, bin gerade am Verzweifeln, denn alles, was sonst immer funktionierte geht plötzlich nicht mehr. mein Code: cat table1 | while read...