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

Bash, Shell, PHP, Python, Perl, CGI
crazyiven
Posts: 18
Joined: 2002-11-21 14:03

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

Post 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
pollux
Posts: 52
Joined: 2003-03-05 18:55

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

Post 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
crazyiven
Posts: 18
Joined: 2002-11-21 14:03

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

Post 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
User avatar
Joe User
Project Manager
Project Manager
Posts: 11173
Joined: 2003-02-27 01:00
Location: Hamburg

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

Post by Joe User »

Das Script erfüllt jedoch Deine Anforderungen nicht ;)
man grep
man sed
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
pollux
Posts: 52
Joined: 2003-03-05 18:55

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

Post 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
crazyiven
Posts: 18
Joined: 2002-11-21 14:03

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

Post 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.
highelf
Posts: 41
Joined: 2003-01-11 09:42

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

Post 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