hallo,
ich muss in einigen meiner kundenordner etwas ändern, damit ich jetzt nicht etliche dateien per hand ändern muss wollte ich es automatisiert haben.
in etwas so: ersetze im ordner "xxxxx" den inhalt aller dateien welcher "YYYY" entspricht durch "ZZZZZZ"
geht das?
christian
einen teil von dateien gloabel ersetzen - ist das möglich
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: einen teil von dateien gloabel ersetzen - ist das möglich
Code: Select all
find /xxxxxx | xargs sed s/YYYY/ZZZZZZ/gDebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: einen teil von dateien gloabel ersetzen - ist das möglich
grep, find und sed sollten Deine Freunde sein. Die Manpages dazu sind umfangreich und aufschlussreich, zudemm kannst Du über unser aller Freund Herrn Google auch noch massenhaft zusätzliche Informatioinen und HOWTOs bekommen, schließlich ist das was Du da vorhast lediglich ein technisches Kavaliersdelikt ...
[edit]
Und weil der Käpt'n chown wieder schneller war als meiner einer, hier noch eine kleine Vorgehensweise:
1. mit find und grep die betroffenen Dateien suchen und die Pfade in eine Parameterdatei schreiben, in etwa so:
Die Ausgabe müsste noch um störende "Nebengeräusche" bereinigt werden ...
2. mit sed dann die Parameterdatei abgraben und die Ersetzungen vornehmen, in etwa so:
Wenn Du das ganze in ein Skript packst hast Du es auch später noch parat - wie gesagt, sowas sind ganz alltägliche Aufgaben :D
Ach - und einen noch für den Käpt'n
So wie Du das schreibst, wird der gute alte sed lediglich das erste Vorkommen ersetzen, da Du es versäumt hast ihm zu sagen, das er von der ersten '1' bis ',' zur letzten '$' Zeile alle Vorkommen '/g' ersetzen soll
Ist das nicht eher was für's Scripting-Board? ...
[/edit]
[edit]
Und weil der Käpt'n chown wieder schneller war als meiner einer, hier noch eine kleine Vorgehensweise:
1. mit find und grep die betroffenen Dateien suchen und die Pfade in eine Parameterdatei schreiben, in etwa so:
Code: Select all
find /home -type f -exec grep "Suchmuster" {} ; >> Param.file2. mit sed dann die Parameterdatei abgraben und die Ersetzungen vornehmen, in etwa so:
Code: Select all
for datei in $(cat Param.file)
do
sed -e '1,$s/<Suchmuster>/<Ersetzung>/g' < ${datei} > ${datei}.bkp
mv ${datei}.bkp ${datei}
doneAch - und einen noch für den Käpt'n
So wie Du das schreibst, wird der gute alte sed lediglich das erste Vorkommen ersetzen, da Du es versäumt hast ihm zu sagen, das er von der ersten '1' bis ',' zur letzten '$' Zeile alle Vorkommen '/g' ersetzen soll
Ist das nicht eher was für's Scripting-Board? ...
[/edit]
Re: einen teil von dateien gloabel ersetzen - ist das möglich
danke erstmal
wie kann ich die zeile vom CaptainCrunch so abändern das alle vorkommen einer datei geändert werden? evtl mit einbeziehung aller unterverzeichnisse.
mehr brauche ich eigentlich nicht - dann ist es auch kein skript ;-)
christian
wie kann ich die zeile vom CaptainCrunch so abändern das alle vorkommen einer datei geändert werden? evtl mit einbeziehung aller unterverzeichnisse.
mehr brauche ich eigentlich nicht - dann ist es auch kein skript ;-)
christian
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: einen teil von dateien gloabel ersetzen - ist das möglich
Und ab ins Scripting ...
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: einen teil von dateien gloabel ersetzen - ist das möglich
Hatte vorhin nen ähnliches Problem und hab mir folgendes zusammengeflickt, um Unterverzeichnisse in allen Homedirs anzulegen, was aus skel zu kopieren und die Rechte zu setzen. Vielleicht brauchts ja noch jmd.
Code: Select all
for name in $(ls /home/. | awk -F ' ' '{print $1}')
do
 mkdir /home/${name}/.spamassassin
cp /etc/skel/.spamassassin/user_prefs /home/${name}/.spamassassin/
chown -R ${name}.${name} /home/${name}/.spamassassin
doneAlle Dateien mit bestimmten Suchwort auflisten.
Danke Dea,
für die for-Schleife, mir war die Syntax gerade nicht geläufig.
Die 'Nebengeräusche' bekommt man so weg ...
-s für silent
-l listet Dateinamen auf
-r rekursiv durch die Verzeichniss
Dann kann man sich das find -type f sparen ;-)
*bg*
Thomas
für die for-Schleife, mir war die Syntax gerade nicht geläufig.
Die 'Nebengeräusche' bekommt man so weg ...
Code: Select all
grep -slr "komm_Pfiffi_such" . >> Param.file-l listet Dateinamen auf
-r rekursiv durch die Verzeichniss
Dann kann man sich das find -type f sparen ;-)
*bg*
Thomas