Page 1 of 1

Bash Skript um eine bestimmte Zeile in einer Datei zu ändern

Posted: 2003-12-29 18:17
by crazyiven
Hallo Leute,

ich bräuchte dringend ein kleine Skript das folgendes macht:

In der Datei X ist eine bestimmte Zeile Y die ich aber in Zeile Z ändern muss. Das muss ich in ca 300 Dateien machen. Die Schleife ist kein Problem, ich muss nur wissen wie ich die Zeile Y aus der Datei X auslese und durch Zeile Z ersetze.

Wäre nett wenn dieses Skript jemand hier reinschreiben könnte.

Danke im Vorraus

CrazyIven

Re: Bash Skript um eine bestimmte Zeile in einer Datei zu ändern

Posted: 2003-12-29 19:43
by pollux
Hey,

wir sind doch nicht im Schlaraffenland, wo einem die fertigen Skripten in den PC fliegen :x
Das Programm, das Du brauchst ist sed. Und die Anleitung dazu findest Du mit "info sed". Sed kann sehr viel und u.a. auch nach RegEx suchen und ersetzen.

Wenn Du mir 20,- EUR überweist, setze ich mich hin und Du bekommst ein fertiges Skript von mir 8)

Viele Grüße

Pollux

Re: Bash Skript um eine bestimmte Zeile in einer Datei zu ändern

Posted: 2003-12-29 19:53
by crazyiven

Code: Select all

#!/bin/bash

for i in <file>
do
    # simple sed replace but output to a new file
    sed 's/<alte zeile>/<neue zeile>/' $i > $i.new
    # replace the new file over the old one
    mv -f $i.new $i
done

Oder ich nehme dieses Skript und ändere die Dateien. Schade das anscheinend immer mehr Geldgierige User unterwegs sind. Und für dieses kleine Skript 20 Euro? Werd ich mir merken.

Greetz Iven

P.S.: Wer so ein Skript brauch darf sich dieses Skripts bedienen und mir 0,0 Euro überweisen. Danke

Re: Bash Skript um eine bestimmte Zeile in einer Datei zu ändern

Posted: 2003-12-29 20:04
by Joe User
Das Script erfüllt jedoch Deine Anforderungen nicht ;)
man grep
man sed

Re: Bash Skript um eine bestimmte Zeile in einer Datei zu ändern

Posted: 2003-12-29 20:12
by pollux
Und das wäre bei meinem 20,- EUR Skript nicht passiert. Meine Sachen haben alle Garantie :-D

Aber nichts für ungut, ich fand nur Deine Frage etwas zu fordernd, daher mein bissiger Kommentar. Ich behalte diesen Thread weiter im Auge, und vielleicht schafft es Dein Problem, mich so zu fesseln, daß ich es auch für umsonst löse...

Viele Grüße

Pollux

Re: Bash Skript um eine bestimmte Zeile in einer Datei zu ändern

Posted: 2003-12-29 20:15
by crazyiven
Mein Problem ist damit gelöst.

Er nimmt die Urdatei sucht die Zeile, ändert sie und speichert es unter Urdatei.new ab. Danach renamed er Urdatei.new zu Urdatei.

Alles np ... genau das was ich brauchte.

Re: Bash Skript um eine bestimmte Zeile in einer Datei zu ändern

Posted: 2004-01-08 11:56
by highelf
ich hoffe es passt hier im thread: ich war lange auf der Suche nach einem suchen und erstzen recursiv durch verzeichnisse: alle sagen immer machs doch selber in perl... Aber wieso alles neu erfinden also meine Lieblingslösung:
rpl (http://www.laffeycomputer.com/rpl.html)
damit kann man einfach

Code: Select all

rpl -R 'alt' 'neu' * 
eintippen und es wird durch die verzeichnisse in jede datei das Wort alt durch neu ersetzt.
uts,
ju