suchen - ersetzten in Ordnern

S

seraph

Jungspund
Hallo
ich mächte in dateine zuerst was suchen und dann mit was anderem ersetzten lassen. das würde ich mit einer Datei so machen oder:

Code:
sed 's/alt/neu/g' test.txt

ich möchte jetzt aber in einem ortner nach diesem suchen und alles erstezen, also ich eine grosse verzechnis struktur, muss ich da zuesrt irgendwie einen find oder so machen?
 
Jep, mit find kann man das machen. Also entweder find ... -exec sed ... oder aber, da Du von einer umfangreichen Verzeichnisstruktur redest, find + xargs, in Deinem Fall:

Code:
find /verzeichnis -type f -print0 | xargs -0 -n1 sed 's/alt/neu/g'

Gruss, Xanti
 
hallo
danke, aber irgendwie hat er probleme:

Code:
# find . -type f -print0 | xargs -0 -n1 sed 's/alt/neu/g'
find: bad option -print0
find: path-list predicate-list
xargs: illegal option -- 0
xargs: Usage: xargs: [-t] [-p] [-e[eofstr]] [-E eofstr] [-I replstr] [-i[replstr]] [-L #] [-l[#]] [-n # [-x]] [-s size] [cmd [args ...]]
 
Hmm, probier mal

Code:
find . -type f -exec sed 's/alt/neu/g' {} \;
 
geht, aber er zeigt die änderungen nur am screen und speichert es nicht ab
 
Natürlich zeigt er die Änderungen nur am Screen.
RTFM
 
Yep, man muss die inplace-Option von sed nutzen. Da ich aber bezweifle, dass Dein sed die hat, gibts 'ne andere Lösung:

Code:
find . -type f | while read i; do sed 's/alt/neu/g' "$i" > "$i.tmp" && mv "$i.tmp" "$i"; done
 
So wie ich es überflogen habe und verstanden habe, musst du es umleiten in eine Datei.

Da gibt es ja so ein schönes Zeichen: ">"

Damit kannst du etwas vom Screen in eine Datei umleiten.

Z.B. ls > /dev/NULL

Ich empfehle dazu rtfw, denn rtfm wird nicht so viel bringen, denke ich.
man \>
Kein Manual-Eintrag für > vorhanden
 
Um der RTFM-Meinung mal genüge zu tun:

$ man bash

:rtfm: :D

karru
 
Ja ich finde das es solangsam bisschen viel wird was hier als so gefragt wird. Für jeden scheiss wird gleich ein neues topic gestartet, anstatt das man sich mal mit seinem Problem auseinander setzt.

Einfach mal die Manpages, Faqs oder HowTos lesen würde helfen, Google findet zu 99% etwas zum Thema.

http://www.strcat.de/rtfm/

MFG Manuel
 

Ähnliche Themen

Hilfe für ein shell script

sed in awk

File Rename

Skript soll nicht doppelt laufen... kill pkill pid cron

Suchen und Ersetzen mit regulärem Ausdruck

Zurück
Oben