suchen und ersetzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

suchen und ersetzen

Beitrag von HelsAett » 05.09.2007 15:16:04

Hallo @ll

für Euch ist das sicher ein leichtes, vielleicht könnt Ihr mir helfen

ich mus in einem skript den inhalt von 2 verschiedenen verzeichnissen raussuchen und in den dort vorhandenen dateien die komplette zeile mit einer geänderten zeile korrigieren...

Hat da jeman einen guten ansatz für mich, bitte!

Gruß HelsAett

Benutzeravatar
domoson
Beiträge: 322
Registriert: 04.08.2007 19:27:13
Wohnort: Bayern
Kontaktdaten:

Re: suchen und ersetzen

Beitrag von domoson » 05.09.2007 15:30:09

HelsAett hat geschrieben: ich mus in einem skript den inhalt von 2 verschiedenen verzeichnissen raussuchen und in den dort vorhandenen dateien die komplette zeile mit einer geänderten zeile korrigieren...
"in" oder "mit" einem script`? ersteres gibt irgendwie keinen sinn;)

aber mich würds auch interessieren (*posting um topic zu eigene beiträge hinzuzufügen* ;) )

swuing
Beiträge: 106
Registriert: 17.09.2006 21:18:38

Beitrag von swuing » 05.09.2007 15:41:37

die verschiedenen dateien bekommen unterschiedlichen neuen inhalt?...genauer
haben die dateien nur eine zeile?

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 05.09.2007 16:01:38

Ok ich versuch es mal zu erklären

ich habe im Verzeichnis /etc/ datei1 datei2 usw und in /bin/ datei3 datei4 usw

die Dateien sind dadran zu erkennen, das sie einen Eintrag haben variable="viel verschiedener Inhalt" den teil zwischen den Anführungszeichen "viel verschiedener Inhalt" möchte ich durch einen Wert xyz ersetzen.

Ich hoffe das Hilf weiter, wenn Ihr mehr Infos braucht, fragt bitte

Danke

Gruß HelsAett

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Beitrag von detix » 05.09.2007 19:55:14

So richtig verstanden hab ichs wahrscheinlich nicht,
aber mal der Versuch einer Lösung:
sed -e 's/Suchbegriff/Ersetzungsbegriff/g' $(find /{etc,bin}/Datei* -type f)
Falls es etwas in dieser Art sein sollte kannst du den sed Befehl etwas abändern...
erstellen einer Sicherungskopie der original Dateien mit:
sed -i.bak -e 's...
direktes Überschreiben der Dateien, keine Möglichkeit des Rückgängigmachens mehr:
sed -ie 's...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 06.09.2007 08:08:59

detix erstmal danke aber leider tut es das noch nicht wie gewünscht

sed -e 's/Suchbegriff/Ersetzungsbegriff/g' $(find /{etc,bin}/Datei* -type f)

suchbegriff ersetzungsbegriff ist klar aber /Datei ist nicht bekannt ich möchte alle durchsuchen, ich habe mit im home mal zwei verzeichnisse und paar dateien mit inhalt angelegt angelegt und das skript getestet, leider steht nach lauf immer noch das selbe drin. Was nicht seien sollte.

Könnt Ihr mir noch weiter helfen

Danke

Gruß HelsAett

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 06.09.2007 11:27:52

Hallo @ll

ich hab jetzt die lösung "vielen Dank für Eure mithilfe"

find . -iname "*.txt" | xargs perl -pi.bak -e "s/Suchbegriff/Ersetzungsbegriff/g"

Gruß HelsAett

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Beitrag von detix » 06.09.2007 18:43:00

Ist das nicht dasselbe wie:
sed -i.bak -e 's/Suchbegriff/Ersetzungsbegriff/g' $(find /{etc,bin}/*.txt -type f) :?:
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten