هک‌ها و تشعشعات وجدان آزاد

نوشته‌های سیدمحمدمسعود صدرنژاد

ابزار کاربر

ابزار سایت


shell_scipt_تغییر_نام_فایل_ها_به_شماره

shell scipt تغییر نام فایل‌ها به شماره

فرض کنید تعدادی فایل در یک دایرکتوری با یک پسوند مشخص (مثل .jpg یا .pdf) دارید و می‌خواهید اسامی این فایل‌ها را بر اساس ترتیب (sort) نام آن‌ها به 1.jpg و 2.jpg و 3.jpg و … تغییر دهید طوری که اگر فایلی با یکی از این شماره‌ها موجود بود مثلا 5.jpg موجود بود نام این فایل را تغییر نداده و فایل بعدی را 6.jpg نامگذاری کند. اینکار با چند خط شل‌اسکریپت به سادگی امکان‌پذیر است:

n=1
for file in *.jpg; do
    echo $file
    prefix=1
    file_name=$n.jpg
    echo $file_name
    n=$(( $n+1 ))
    mv $file $file_name
done

کافیست در خط file_name=$n.jpg و for file in *.jpg; do پسوند .jpg را به پسوند مورد نظرتان تغییر دهید. همچنین اگر بخواهید چیزی قبل یا بعد از شماره‌گذاری نام جدید فایل‌هایتان بنویسید می‌توانید در همین خط به قبل یا بعد از $n به صورت Regex اضافه کنید. نکته‌ی بعدی این شل‌اسکریپت این است که نام فایل‌ها قبل و بعد از تغییر را در خروجی زیر هم چاپ می‌کند. از ویژگی‌های دیگر آن مقدار n در ابتدای شل‌اسکریپت است که نشان می‌دهد شماره‌گذاری فایل‌ها از چه عددی قرار است شروع شود.

shell_scipt_تغییر_نام_فایل_ها_به_شماره.txt · آخرین ویرایش: 2015/07/01 13:25 (ویرایش خارجی)