8 Mayıs 2011, Pazar
Özyinelemeli olarak belirli bir uzantıya sahip dosyaları aramak
Benim bash ile bir dizin ve alt dizinleri belirli bir uzantısı (en Son Ubuntu BU Sürüm ile tüm dosyaları bulmak için çalışıyorum.
Bu komut dosyasında ne yazıyor:
#!/bin/bash
directory="/home/flip/Desktop"
suffix="in"
browsefolders ()
for i in "$1"/*;
do
echo "dir :$directory"
echo "filename: $i"
# echo ${i#*.}
extension=`echo "$i" | cut -d'.' -f2`
echo "Erweiterung $extension"
if [ -f "$i" ]; then
if [ $extension == $suffix ]; then
echo "$i ends with $in"
else
echo "$i does NOT end with $in"
fi
elif [ -d "$i" ]; then
browsefolders "$i"
fi
done
}
browsefolders "$directory"
Terminalde bu komut başladığımda ne yazık ki, şöyle diyor
[: 29: in: unexpected operator
('in'
yerine $extension
)
Hata burada, neler oluyor? Ama bu ayracı kıvırcık
CEVAP
8 Mayıs 2011, Pazar
find $directory -type f -name "*.in"
biraz her şeyi (ve daha güvenli - dosya adlarında boşluk ile ilgilenir ve dizin adları) daha kısadır.
Senaryonu büyük ihtimalle kendi adına .
yok girişler için $extension
boş yapma başarısız oluyor.
Bunu Paylaş:
Bulmak ve Değiştirmek için PowerShell ...
R belirli bir uzantıya sahip tüm dosya...
Özyinelemeli olarak bir Linux dizinind...
Liste yolu geçerli dizin göre Linux CL...
Ne sondaki boşlukları kaldırmak için d...