Nasıl hakkında:
for file in *.php3
do
sed 's/\.php3/.php/g' $file > ${file%3}
done
Için / do / sırayla her. Php3 dosyası ile döngü fırsatlar, dosya düzenleme ve .php3
.php
ile her dize yerine, ve something.php3 gelen şey dosyayı kopyalarken yapılır. php.
Added for amended question:
for file in $(find . -type f -name '*.php3' -print)
do
sed 's/\.php3/.php/g' $file > ${file%3}
done
'-print
' genellikle bu gün ihmal edilebilir, ancak tarihsel, makine çok zaman hiçbir varsayılan eylem (pre-POSIX) aslında yoktu çünkü eklemek unuttum insanlar tarafından heba edildi.
Bu fragman genişletilmiş görev yapmak için özgün kod basit değişiklik hakkında, ama mutlaka artık bunu yapmak için en iyi yol değildir - herhangi bir işleme önce dosyaları tüm listesini önceden oluşturur. Bunun yerine kullanabilirsiniz:
find . -type f -name '*.php3' -print |
while read file
do
sed 's/\.php3/.php/g' $file > ${file%3}
done
Dosya isimleri ve yol isimleri boşluklar veya satırsonlarını ya da diğer karakterleri içerebilir Ancak, her ikisi de tadil versiyonları sorunlarla çalıştırabilirsiniz. Bu tür sorunları önlemek için, daha çok çalışmak zorunda - Perl kullanarak veya (GNU + xargs bulmak) veya diğer bazı teknikler. Eğer aklı başında iseniz, bu tür sorunları önlemek. Tamamen aklı başında kurulum daha az miras ettiyseniz, o zaman Unix dosya adı işleme sır daha derin defterleri gerekebilir.