PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BASH - IF Bedingung funktioniert nicht (Teil eines Dateinamens auslesen)



TMA
05-12-2009, 12:41
Hallo,

ich will aus einem Ordner alle Dateinamen extrahieren die mit Results anfangen...

mein Ansatz ist:

if [ `"$j" | cut -c1-7` != `"Results"` ];then
continue

Wieso geht das nicht? Ich habs mit allen möglichen Varaitionen versucht mit "" bzw ``, aber es kommt immer irendein fehler...
Entweder unary operator expected oder command DATEINAME (= $j) nocht found...

DANKE

msi
05-12-2009, 15:10
zB



if echo $j | grep "^Results; then echo ja; fi


oder schöner gleich inne schleife verpacken:



find . -name "Results*" | while read file; do
echo $file
done


wenn dus brauchst noch --max-depth option bei find nutzen.

zst
05-12-2009, 15:21
sollte auch so gehen ...


for i in $(echo Results*)
do
echo $i
done

Gruss zst

msi
05-12-2009, 17:45
stimmt, aber lieber so:



for i in Resu*; do echo "$i"; done


sonst werden dateinamen mit sonderzeichen falsch angewand (zB leerzeichen)

TMA
05-12-2009, 22:54
danke, kann geschlossen werden