1 |
Christof Schulze wrote: |
2 |
> On 18.01.2006 23:30:42 Klaus Fabritius wrote: |
3 |
>>> for i in `find /home/musik -iname '*.mp3'` |
4 |
>> |
5 |
>>Ist vielleicht antik, aber bei "for in in 'was mit *'" bekomme ich immer |
6 |
>>Bauchgrimmen, besser fände ich da: |
7 |
>> |
8 |
>>find ... | while read i |
9 |
>> |
10 |
>>Weiterhin gibt es Probleme mit Blanks in Dateinamen (bei mp3s nicht |
11 |
>>selten): |
12 |
>> |
13 |
>>$> ls |
14 |
>>foo.mp3 |
15 |
>>baz baz.mp3 |
16 |
>>qux.mp3 |
17 |
>> |
18 |
>>$> for i in `find /home/musik -iname '*.mp3'` ; do echo "$i"; done |
19 |
>>./bar |
20 |
>>baz.mp3 |
21 |
>>./foo.mp3 |
22 |
>>./qux.mp3 |
23 |
>> |
24 |
>> |
25 |
>>Da muß IFS ran: |
26 |
>> |
27 |
>>$> find /home/musik -iname '*.mp3' | while IFS= read i ; do echo "$i" ; done |
28 |
>>./bar baz.mp3 |
29 |
>>./foo.mp3 |
30 |
>>./qux.mp3 |
31 |
>> |
32 |
>>Sauber. |
33 |
>> |
34 |
>> |
35 |
>>> do |
36 |
>>> BPM=`id3info "$i" | grep TBPM | cut -c 36-` |
37 |
>>> let BPM=$BPM/4 |
38 |
>> |
39 |
>>Da muss aber sicher sein, daß $BPM keine Blanks enthält: |
40 |
>> |
41 |
>>$> BPM="4 " |
42 |
>>$> let BPM=$BPM/4 |
43 |
>>$> echo $BPM |
44 |
>>4 |
45 |
> Alles Falsch ;) |
46 |
> nee ma im ernst. Spaces in dateinamen sind kein Problem wenn man die |
47 |
> Dateinamensliste durch globbing der Shell erstellen lässt |
48 |
> also |
49 |
> |
50 |
> for i in *.mp3 |
51 |
> do |
52 |
> echo $i |
53 |
> done |
54 |
> |
55 |
> ist kein Problem. |
56 |
|
57 |
Stimmt. Wenn die Dateien allerdings auch in Unterverzeichnissen |
58 |
liegen, dann wird's mit for "unschön". Klar, man könnte auch |
59 |
|
60 |
for i in {.,*{/*}}/*.mp3 |
61 |
|
62 |
oder so schreiben. Da ist aber find schöner, IMO |
63 |
|
64 |
Alexander Skwar |
65 |
-- |
66 |
Men of quality are not afraid of women for equality. |
67 |
|
68 |
-- |
69 |
gentoo-user-de@g.o mailing list |