[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: (SOLVED) Re: Alle Dateiendungen finden



Nochmal ich :)

Thorsten Strusch schrieb:
> Hi Thorsten,
> 
> Thorsten Hamester schrieb:
>> Hallo Matthias Houdek und Liste,
>>
>>> Natürlich in einer weiteren Pipe:
>>>
>>> ... | sort -u | unic -c > dateiendungsliste.txt
>> Kopfstand im Aschekasten, ja klar, an den befehl hab ich nicht mehr
>> gedacht.
>> Dennoch hat er mir immer noch folgenden Pfad zerlegt
>> /pfad/pfad/Test/kav4samba-linux-5.0.4.0/kav4samba/
>> als Endung "0/kav4samba/bin"
>> aber die Datei /pfad/pfad//poi-bin-2.5.1-final-20040804.tar.gz
>> hat er richtig zerlegt als gz
>> Es hat sich zwar erledigt aber es würde mich doch interessieren wie
>> sowas optimiert werden könnte.
> 
> Die bash kann dir dabei auch schon helfen, siehe:
> http://www.tldp.org/LDP/abs/html/refcards.html#AEN18911
> Table B-5. String Operations
> 
> In der Anwendung heißt das:
> DATEI=Dateiname.tar.gz
> t@str:/tmp$ echo ${DATEI##*.}
> gz
> 
> Jetzt muß man das nur noch mit dem find Befehl verquicken.
> Folgendes zeigt, dass die Dateien eingesetzt werden:
> 
>  find . -type f -exec echo '${{}##*.}' \;
> ${./iof.trs##*.}
> ${./fgwg.123##*.}
> ${./fdfgw.dfe##*.}
> 
> Sobald man aber die einfache Hochkommatas entfernt,
> gibt es eine 'bad substitution'. Hier muß also noch
> ein wenig 'escaped' werden - weiß jemand wie genau?

Über ein externes Programm funktioniert es:

find . -type f -iname "*\.*" -exec /tmp/hilfsprogramm {} \;

mit :
,---[ /tmp/hilfsprogramm ]----
| #!/bin/sh
| echo ${1##*.}
`----------------/

Grüße
Thorsten




Reply to: