نكته هاي خط فرمان(قسمت پنجم)
فوریه 26, 2008 با احمد صوفی محمودی
قسمت پنجم و نهايي نكته هاي خط فرمان:
31- اگر P مسیر یک فایل یا دایرکتوری باشد:
این دستور اسم آن فایل یا دایرکتوری را چاپ میکند:
echo "${P##*/}"
و دایرکتوری والد آن (که با دستور dirname هم به دست میآید):
echo "${P%/*}"
و پسوند(اکستنشن) آن:
echo "${P##*.}"
و اسم آن بدون پسوند در دو مرحله چاپ میشود:
N="${P##*/}" ; echo "${N%.*}"
32- حالا کمی تعمیمش میدهیم:
اگر P یک رشته(string) باشد:
قسمتی از رشتهٔ P است که بعد از آخرین / قرار دارد:
{P##*/}
قسمتی از رشتهٔ P است که بعد از اولین / قرار دارد:
{P#*/}
قسمتی از رشتهٔ P است که قبل از اولین / قرار دارد:
{P%%/*}
قسمتی از رشتهٔ P است که قبل از آخرین / قرار دارد:
{P%/*}
نكته:در موارد بالا بجای کاراکتر اسلش(/) هر کاراکتر دیگری میتوان گذاشت.
33- حالا بیشتر تعمیمش میدهیم:
همان رشتهٔ P که بلندتربن مصداق REGEXP از ابتدای آن حذف شده:
{P##REGEXP}
همان رشتهٔ P که کوتاهتربن مصداق REGEXP از ابتدای آن حذف شده:
{P#REGEXP}
همان رشتهٔ P که بلندتربن مصداق REGEXP از انتهای آن حذف شده:
{P%%REGEXP}
همان رشتهٔ P که کوتاهتربن مصداق REGEXP از انتهای آن حذف شده:
{P%REGEXP}
که بجای کلمهٔ REGEXP هم یک ساختار یا عبارت منظم (regular expression) قرار میگیره. برای اطلاعات بیشتر:
man regexp
براي بار آخر بگويم:اين نوشته ها نگاشته شده من يعني مدير وبلاگ نيست!(با مشاهده قسمت هاي مختلف نكته هاي خط فرمان در اين سايت اين مسئله را به خوبي درك مي كنيد)بلكه از يك تاپيك سايت(در اصل فروم يا انجمن گفتگو) forum.ubuntu-ir.org برداشت شده است.