Sie sind nicht angemeldet.

1

01.04.2010, 16:40

[gelöst] rekursiv Dateien in-place upercase konvertieren

Hallo,

ich möchte einen Ordner rekursiv nach Textdateien (Endung .lab) durchsuchen und alle Textdateien in-place in uppercase konvertieren.

Folgendes habe ich ohne Erfolg versucht:

find coded -iname *.lab | sed -i 's!a-z!A_Z!g'

Vielleicht kann mir jemand weiterhelfen.
Danke im Voraus

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

2

01.04.2010, 17:19

RE: rekursiv Dateien in-place upercase konvertieren

Mit der Zsh

Quellcode

1
2
3
$ setopt extendedglob
$ autoload zmv
$ zmv -Qv '(**/)(*)(.D)' '$1${(U)2}'
Ansonsten http://www.faqs.org/faqs/unix-faq/faq/part2/section-6.html
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »strcat« (01.04.2010, 17:20)


3

01.04.2010, 19:28

war ich glaub unpräzise ... will nicht die Dateinamen ändern, sondern den Inhalt der Textdateien von Lowercase auf Uppercase konvertieren.

4

01.04.2010, 20:14

Dein bisheriger Versuch war so verrückt, dass er grob irreführend war.

Ich würde es so angehen, aber das könnte Probleme geben, wenn die Dateinamen Quotes oder ähnliche Sonderzeichen enthalten:

Quellcode

1
find coded/ -iname '*.lab' -exec bash -c "tr '[:lower:]' '[:upper:]' < '{}' > /tmp/loeschmich; cp /tmp/loeschmich '{}'" \;
Wenn es Sonderzeichen in den Dateinamen gibt, dann würde ich überlegen, es eher so zu machen (in der bash):

Quellcode

1
2
3
4
find coded/ -iname '*.lab'|while read -r dateiname; do
    tr '[:lower:]' '[:upper:]' < "$dateiname" > /tmp/loeschmich;
    cp /tmp/loeschmich "$dateiname";
done

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

5

01.04.2010, 20:19

Ahjetztja..

Quellcode

1
sed -i 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' ...
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

6

01.04.2010, 20:21

besten Dank, hat wunderbar funktioniert :)

Thema bewerten