فرض بگیریم فولدری دارید که تعداد زیادی فایل در آن وجود دارد و میخواهید نام فایلها را عوض کنید. مثلا همهشان نام IMG دارند و میخواهید به جای آن بنویسید Image. بهطور یقین تغییر نام به روش دستی ساعتها بهطول میانجامد اما با کمک این فن کوچک و مختصر، میتوانید وقت زیادی را بخرید:
دستور for در اسکریپتها اینگونه عمل میکند:
for var in <files>;
var;done$ do <command>
-
اسپیکر جی تی ار مدل JW600P
۱۰,۲۵۰,۰۰۰تومان خرید محصول -
ساعت هوشمند مدل We-Series DZ09
۱۰۸,۵۵۰تومان خرید محصول -
ساعت هوشمند زبلاز مدل VIBE 5
۶۹۹,۰۰۰تومان خرید محصول -
سه پایه دوربین کد ۳۱۱۰
۱۲۹,۰۰۰تومان خرید محصول - تخفیف!
اسپیکر بلوتوثی قابل حمل اس دی ار مدل SD-306
قیمت اصلی ۱,۸۰۰,۰۰۰تومان بود.۱,۲۶۰,۰۰۰تومانقیمت فعلی ۱,۲۶۰,۰۰۰تومان است. خرید محصول - تخفیف!
ساعت هوشمند هایلو مدل SH S2021
قیمت اصلی ۱,۱۹۰,۰۰۰تومان بود.۱,۰۴۷,۲۰۰تومانقیمت فعلی ۱,۰۴۷,۲۰۰تومان است. خرید محصول -
لپ تاپ ۱۵ اینچی ایسر مدل Nitro 5 AN515-54-73SS
۲۱,۷۵۰,۰۰۰تومان خرید محصول - تخفیف!
پالس اکسیمتر مدل R769
قیمت اصلی ۴۹۰,۰۰۰تومان بود.۴۶۰,۰۰۰تومانقیمت فعلی ۴۶۰,۰۰۰تومان است. خرید محصول
میتوانید بهجای <files> هر چیزی بنویسید. مثلا * یا *.txt همچنین میتوانید داخل <command> هر چیزی که دستور لینوکس باشد را اجرا کنید. توجه کنید که دستور هر بار که یک فایل پیدا شد اجرا میشود. حالا اینجا با کمک یک متغیر میتوانیم کار را جالبتر کنیم. بهجای اینکه فقط از متغیر استفاده کنیم (مثل var$( میتوانیم با استفاده از این الگوی نگارشی، عملیات جایگزینی را هم روی هوا انجام دهیم:
{var/originaltext/replacetext}$
بنابراین اگر این دستور را داخل دایرکتوری عکسهایمان اجرا کنیم:
{f/IMG/Image}; done$ f$ for f in *; do mv
برای هر فایلی که دارای الگوی * باشد (یعنی همه فایلها)، دستور زیر اجرا میشود:
.jpg230.jpg Image_230mv IMG_