• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] mehrere Dateien mit SED verändern

phlox

Newbie
Hi,
ich muss in mehreren dutzend Dateien jeweils eine Zahl ändern.(von 96 zu 32 )
Sagen wir alle diese Dateien haben die Endung *.a und ich will die jewils geänderte version der Datre in *.b speichern.
Habe es mit diesem Befehl versucht, hat aber nicht ganz funktioniert:

sed 's/96/32/g' *.a > *.b

Phlox[/code]
 

Leviathan

Hacker
sed 's/96/32/g' *.a > *.b

probiers mal damit (ungetestet) (aber mach davor bitte ne Sicherheitskopie der Files, da ist schnell ne Datei geplättet)

for i in $(ls *.a); do sed 's/96/32/g' $i > $(basename $i).b

Gruß Dominik
 

Leviathan

Hacker
arg , neugierig. Habs getestet. Hat bissl was gefehlt.

Probier folgendes, das geht:

for i in $(ls *.a); do sed 's/96/32/g' $i > $(basename $i .a).b; done

Gruß Dominik
 
OP
P

phlox

Newbie
wow .. die antwort ging ja schnell...
habs ausprobiert bekomme aber die Fehlermeldung
"Illegal variable name"
weist du woran das liegen könnte?
Außerdem will die Konsole das "do" immer zu "od" korrigieren
 
Code:
for i in *.a; do 
    perl -pe 's/96/32/g' $i >"${i%.a}.b";
done;
${..%..} ist doch SOVIEL einfacher als sich mit basename rumzuschlagen.
 
OP
P

phlox

Newbie
perfekt...
hat funktioniert...
danke nochmal an euch zwei
Ich bin immer wieder von solchen foren begeistert!!
 
Oben