انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: QSBuntu در 18 تیر 1393، 04:37 قظ
-
با سلام
این تاپیک یک خواهر خوانده (!) برای تاپیک کلکسیونر اسکریپت (http://forum.ubuntu.ir/index.php/topic,95377.0.html) است
فکر نکنم توضیحی لازم باشه و هرکس اسکریپتی بذهنش میرسه یا اسکریپتی میخاد ولی خودش نمیتونه بنویسدش اینجا مطرح کنه تا دوستان کمکش کنند وبا کمک هم اسکریپت نویسی رو بطور عملی و همراه با مثال هایی که خودتون مطرح میکنید یادبگیریم
پس دوستان مساعدت نمایند تا هم نیازهای اسکریپتی همو برطرف کنیم و هم محفلی باشه که توش اسکریپت نویسی رو یادبگیریم و در موردش بحث کنیم
فقط دو نکته مهم اینکه:
1- دوستان تا امکانش هست ازنقل قول استفاده کنند تا زمانیکه چندتا سوال باهم مطرح میشه امکان تفکیکش باشه.. بخصوص زمانی که بین پست های یک سوال فاصله میفته
2-هر اسکریپتی که نوشته شد یا مشکلش برطرف شد باید با صورت مسئله و جواب نهاییش توی تاپیک کلکسیونر اسکریپت (http://forum.ubuntu.ir/index.php/topic,95377.0.html) قرار بدید!
با تشکر از همه دوستان ;)
نمونه اسکریپت هایی که قبل از راه اندازی این تاپیک نوشته شدند:
1-اسکریپت دانلود شبانه ( سیستم رو روشن کن - دانلود کن- خاموش کن) (http://forum.ubuntu.ir/index.php/topic,95377.msg780292.html#msg780292)
2-استراحت دادن به چشم در هر 20 دقیقه (http://forum.ubuntu.ir/index.php/topic,95377.msg780322.html#msg780322)
3-اسم پکیج هایی رو که میخواید بهش میدید و اون لینکهای دانلود رو بهتون میده (http://forum.ubuntu.ir/index.php/topic,95377.msg780332.html#msg780332)
4- یه قسمت از اسم یه برنامه رو میدونید ولی نام کاملشو نمیدونید! میتونید با با عبارات باقاعده توی کل برنامههای سیستم اونو سرچ کنید (http://forum.ubuntu.ir/index.php/topic,95377.msg780412.html#msg780412)
5-تبدیل تعدادی فایل flv به mp3 (http://forum.ubuntu.ir/index.php/topic,95377.msg780477.html#msg780477)
-
با سلام
دوستان من اسکریپتی میخام که بعد ازهر بار روشن شدن سیستم تا لحظه خاموش شدن سیستم
۱- زمان کاربا موس رو حساب کنه
۲-زمانی که هیچکاری با موس و کیبورد انجام نمیشه رو حساب کنه
۳- زمان اختلاف این دو روحساب کنه (زمان کار با کیبورد)
و
این زمان ها را تویه انتهای یک فایل ذخیره کنه که نحوه ذخیره ش هم اینجوری باشه
"time1 /t time2 /t time3"
دوستان به ساده ترین شکل ممکن توضیح بدین و کمک کنین
ممنون
-
الگوریتمی که به نظر من میرسه اینه که اول اید بفهمیم ماوس تکان خورده یا نه، و بعد زمان بین شروع حرکت تا ایستادن ماوس رو حساب کنیم که مجموع این زمانها میشه زمان کارکرد ماوس.
البته برای کیبورد من فکر میکنم که نمیشه چیزی رو حساب کرد چون فشار دادن یک کلید مگه چقدر طول میکشه؟ شاید حتی مجموعش به دقیقه هم نرسه.
خب معلومه که تفاضل کارکرد ماوس از زمان بیدار بودن سیستم میشه زمان بیکاری ماوس :)
فقط مشکل اینجاست که چطور بفهمیم ماوس حرکت کرده یا ایستاده. اگر بشه فهمید میشه حتی میزان جابهجا شدن ماوس رو هم بر حسب متر بهدستاورد!(البته با در نظر گرفتن سرعت متوسط برای ماوس و داشتن dpi صفحه)
-
البته برای کیبورد من فکر میکنم که نمیشه چیزی رو حساب کرد چون فشار دادن یک کلید مگه چقدر طول میکشه؟ شاید حتی مجموعش به دقیقه هم نرسه.
خب معلومه که تفاضل کارکرد ماوس از زمان بیدار بودن سیستم میشه زمان بیکاری ماوس :)
درسته بنظر منم باید اینکارو کرد
ولی بنظرم بعد ازاینکه این رو حساب کنیم میتونی ببینی که کیبورد هم حتی بیشتراز موس میتونه بکار بیاد
البته منم پیش قضاوتی نمیکنم ولی حالا چجوری کیبورد رو حساب کنیم رو قبلا گفتم
من میگم تفاضل کارکرد ماوس از زمان بیدار بودن سیستم میشه زمان بیکاری موس و همچنین زمان استفاده از کیبورد! :)
اینکه طول جابجایی هم حساب بشه رو هم موافقم :)
دوستان کسی کمکی تو نوشتن نمیکنه :(
-
سلام.
یه پوشه پر از پروندهی vcf داریم که با gedit قابل ویرایشاند.
یه برنامها (اسکریپت)ی میخوام که محتوای تمام پروندهها را در این پوشه بگرده و هر عبارت به یکی از شکلهای 0abcdefg*** و +98abcdefg*** و 0098abcdefg*** هست پیدا کنه و به 0hijklmn*** تبدیل کنه.
each (a, b, c, d, e, f, g, h, i, j, k, l, m, n, *) is a member of {o in W, o <= 9}
اگه این سه شکل را هم جدا جدا بررسی کنیم هم اشکالی نداره.
ممنون.
-
سلام.
یه پوشه پر از پروندهی vcf داریم که با gedit قابل ویرایشاند.
یه برنامها (اسکریپت)ی میخوام که محتوای تمام پروندهها را در این پوشه بگرده و هر عبارت به یکی از شکلهای 0abcdefg*** و +98abcdefg*** و 0098abcdefg*** هست پیدا کنه و به 0hijklmn*** تبدیل کنه.
each (a, b, c, d, e, f, g, h, i, j, k, l, m, n, *) is a member of {o in W, o <= 9}
اگه این سه شکل را هم جدا جدا بررسی کنیم هم اشکالی نداره.
ممنون.
#!/bin/bash
#babyy
#iranled.com/forum
IFS="
"
DIR="/tmp/ss/f/"
files=($(grep -E "0abcdefg|\+98abcdefg|0098abcdefg" -l -r ${DIR}*))
for file in ${files[@]}
do
echo "IN '$file'"
sed -i \
-e 's/0abcdefg/0hijklmn/' \
-e 's/\+98abcdefg/0hijklmn/' \
-e 's/0098abcdefg/0hijklmn/' \
"$file"
done
قبل از اینکه اجراش کنی روی چندتافایلت تست کن ببین همون نتیجهای که میخوایی رو میده یا نه؛ و اگه حواب مثبت بود روی بقیه فایلها هم تست کن؛
باید مسیر پوشهای که فایلهات توش هست رو ویراش کنی (همونجا که نوشتم /tmp/ss/f ؛ بجاش آدرس خودتو بذار)
توضیح این اسکریپت اینکه اول با grep کل فایلهایی که شامل یکی از اون عبارتها میشد رو پیدا کردم! این نامهای فایلها توی یک آرایه ذخیره کردم و بعد توی حلقه اسم فالها رو یه ادیتور sed پاس دادم و متن رو تغییر دادم
پیوست هم کردمش
-
لطفا اسکریپت هایی که به خواست بقیه نوشته میشن رو توی تاپیک اصلی هم پست کنید. محل اصلی اسکریپت ها اونجاست!
-
دوستان نطرتون برای راه اندازی سایتی با این موضوع چیه ؟؟؟؟ که هر کسی اگه اسکریپتی داره راحت بتونه منتشر کنه و همه بتونن ازش استفاده کنن !!!!! :D ;D :o
البته سایتش موجوده ولی به علت نداشتن موضوع فعالیت نداره(سایت خودم ;D ;D) !!!!
-
دوستان نطرتون برای راه اندازی سایتی با این موضوع چیه ؟؟؟؟ که هر کسی اگه اسکریپتی داره راحت بتونه منتشر کنه و همه بتونن ازش استفاده کنن !!!!! :D ;D :o
البته سایتش موجوده ولی به علت نداشتن موضوع فعالیت نداره(سایت خودم ;D ;D) !!!!
اگه اینطوریه که کسی اسکریپتی میخواد و میاد درخواست میکنه تا براش نوشته بشه (مثل stackoverflow.com) من پایهام :D
آدرس سایتتون چیه؟
-
دوستان نطرتون برای راه اندازی سایتی با این موضوع چیه ؟؟؟؟ که هر کسی اگه اسکریپتی داره راحت بتونه منتشر کنه و همه بتونن ازش استفاده کنن !!!!! :D ;D :o
البته سایتش موجوده ولی به علت نداشتن موضوع فعالیت نداره(سایت خودم ;D ;D) !!!!
اگه اینطوریه که کسی اسکریپتی میخواد و میاد درخواست میکنه تا براش نوشته بشه (مثل stackoverflow.com) من پایهام :D
آدرس سایتتون چیه؟
نه !!! منظورم اینه که هر کسی با یه موضوع یه اسکریپت رو منتشر میکنه که مثلا یه مشکلی رو حل کنه یا یه کاری بکنه یا ....
حالا option های دیگه رو در صورت راه اندازی درست میکنیم !!! ;D ;D
www.gameek.ir
-
B & GamEEK @
ضمن تشکر ، شما پیشنهادی برای سوال قبلی ندارین؟؟
-
B & GamEEK @
ضمن تشکر ، شما پیشنهادی برای سوال قبلی ندارین؟؟
درسته دوست عزیز حق با شماست ;D !!! باید درباره موضوع تاپیک صحبت بشه!!!!! :-X
-
یه پوشه پر از پروندهی vcf داریم که با gedit قابل ویرایشاند.
یه برنامها (اسکریپت)ی میخوام که محتوای تمام پروندهها را در این پوشه بگرده و هر عبارت به یکی از شکلهای 0abcdefg*** و +98abcdefg*** و 0098abcdefg*** هست پیدا کنه و به 0hijklmn*** تبدیل کنه.
each (a, b, c, d, e, f, g, h, i, j, k, l, m, n, *) is a member of {o in W, o <= 9}
#!/bin/bash
#babyy
#iranled.com/forum
IFS="
"
DIR="/tmp/ss/f/"
files=($(grep -E "0abcdefg|\+98abcdefg|0098abcdefg" -l -r ${DIR}*))
for file in ${files[@]}
do
echo "IN '$file'"
sed -i \
-e 's/0abcdefg/0hijklmn/' \
-e 's/\+98abcdefg/0hijklmn/' \
-e 's/0098abcdefg/0hijklmn/' \
"$file"
done
قبل از اینکه اجراش کنی روی چندتافایلت تست کن ببین همون نتیجهای که میخوایی رو میده یا نه؛ و اگه حواب مثبت بود روی بقیه فایلها هم تست کن؛
ممنون در هر حال.
هنوز امتحان نکردم ولی خب نمیتونم به این راحتی توش پشهای اشکالی چیزی پیدا کنم با وجود این همه پرونده.
اما این اسکریپت جواب دم دستیه و بهتره کامل بشه. چون:
اگه سؤال را با دقت بخونید من از شکل و قالب صحبت کردم و همهی حروف نامبرده را عددی حسابی کوچکترمساوی 9 گفتم باشن.
علت این توضیحات:
1. اگه شمارهای به صورت 0910abcdefg یا 300098abcdefg*** یا ... باشه، با اسکریپت بالا تغییر میکنه ولی من میخوام تغییر نکنه مگر به صورت شکلهای قبلی. مثال 3000؟ سختتره چون باید تشخیص بده که حرف قبل از 0098 عدد نباشه.
2. اگه نامی به صورت رمز شبیه این شمارهها ذخیره شده باشه تغییر میکنه ولی نباید تغییر کنه. برای حل این مشکل هم باید دید توی پروندههای vcf قبل از شماره چه چیزی نوشته شده که اینه:
TEL;TYPE=cell:0098222222
TEL;TYPE=home:05123456
که مثاله و باید اینطوری بفهمه:
TEL;ye chizi ya khali:shekle khaste shode
تا حدی هم بیشتر بهبود پیدا کنه، خوبه. فعلا فکر کنم من چنین حالتهایی نداشته باشم ولی برای قرارگرفتن روی یه سایت به عنوان راه حل بهتره کامل باشه.
ممنون
-
سلام دوستان
امروز داشتم تو فایلهام میگشتم که چشمم خورد به یه فولدر که توش برنامه های پورتابل (پورتیبل ـ با هر تلفظی) بود... روی IDM کلیک کردم تا ببینم چه اتفاق میفته و کار میکنه یا نه ... که دیدم برنامه ی واین بازش کرد ولی مشکل اینجا بود که همه فایل هایی که این برنامه باید تو ویندوز توی پوشه ی تمپ ایجاد میکرد رو همونجا ریخت!! همه فایل ها قاطی شد!! دستی حذف کردنش مکافاته ! برداشتم خود فایلی که روش کلیک کرده بودم رو به یه پوشه جدید منتقل کردم و روش دوباره دابل کلیک کردم تا اجرا شه و همه فایل هاش رو دوباره ایجاد کنه! با ترمینال رفتم به همون مسیر و لیستش رو دراوردم ریختم تویه یه فایل باسم text ... خب حالا اسکریپتی ک میخوام اینه:
اسکریپتی میخوام که یک فایل رو بش بدم و آدرس یک فولدر .. تا همه ی محتویات پوشه که اسمشون توی فایل باشه رو حذف کنه!
شاید اسکریپتش باشه و یا با یه دستور بشه انجامش داد...نمیدونم (واگه میدونید بگی)... ولی اگه کسی از دوستان اسکریپتش رو بنویسه ممنون میشم
-
امتحانش نکردم. آرگومان اول دایرکتوری و آرگومان دوم فایلی که شامل لیست فایلهاست:
#!/bin/sh
cd $1
while read line
do
rm $line
done < $2
-
ممنون در هر حال.
هنوز امتحان نکردم ولی خب نمیتونم به این راحتی توش پشهای اشکالی چیزی پیدا کنم با وجود این همه پرونده.
اما این اسکریپت جواب دم دستیه و بهتره کامل بشه. چون:
اگه سؤال را با دقت بخونید من از شکل و قالب صحبت کردم و همهی حروف نامبرده را عددی حسابی کوچکترمساوی 9 گفتم باشن.
علت این توضیحات:
1. اگه شمارهای به صورت 0910abcdefg یا 300098abcdefg*** یا ... باشه، با اسکریپت بالا تغییر میکنه ولی من میخوام تغییر نکنه مگر به صورت شکلهای قبلی. مثال 3000؟ سختتره چون باید تشخیص بده که حرف قبل از 0098 عدد نباشه.
2. اگه نامی به صورت رمز شبیه این شمارهها ذخیره شده باشه تغییر میکنه ولی نباید تغییر کنه. برای حل این مشکل هم باید دید توی پروندههای vcf قبل از شماره چه چیزی نوشته شده که اینه:
TEL;TYPE=cell:0098222222
TEL;TYPE=home:05123456
که مثاله و باید اینطوری بفهمه:
TEL;ye chizi ya khali:shekle khaste shode
تا حدی هم بیشتر بهبود پیدا کنه، خوبه. فعلا فکر کنم من چنین حالتهایی نداشته باشم ولی برای قرارگرفتن روی یه سایت به عنوان راه حل بهتره کامل باشه.
ممنون
من اون خطی که نوشته بودید رو کلا متوجه نشدم واسه چی نوشتید! وهمچنین از توضیحاتتون هم متوجه نمیشیم دقیقا چی میخوایین! :D
اسکریپتی که نوشتم واسه قسمت فارسی سوالتون بود اون بعدش رو به علقت فقدان ریاضیات نفهمیدم :D:D
اگه به فارسی توضیح بدین ممنون میشم که یکبار دیگه تلاشمو کنم
-
وجدانن اگر کسانی پیدا شوند این اسکریپتا رو بنویسند بی نهایت ممنون و سپاسگذارشان خواهم شد!! با تشکر
1- اسکریپتی که در ساعات مشخصی اتوماتیک اجرا بشه(در محیط متنی و غیر گرافیکی) و آی پی کامپیوترم رو دریافت و به ایمیلم ارسال کنه!
۲- اسکریپتی میخام که برنامه tor رو از مسیر خاصی نصب کنه و بعد از وصل شدن tor به اینترنت، ساکس پراکسی سیستم رو به مقدار مشخصی تغییر بده و براحتی بشه اون اسکریپتو فعال و غیر فعال کرد تا همه چی به حالت اول برگرده! و همچنین اسکریپتی که بشه توش انتخاب کرد کدوم برنامه (از میون برنامه های کروم فایر فاکس و اپرا) به ساکس پراکسی تعریف شده وصل بشه!
۳- اسکریپتی میخام که توی منوی راست کلیک قرار بگیره و با اجرای اون اسکریپت روی پوشه و یا فایل های مورد نظر، آن پوشه و فایل ها به پوشه مشخص از server خانگی ام منتقل بشه! (ترجیحا smb server ولی هر نوع سرور نظیر ftp , .... روی سرور خانگی ام موجود است! خخخخ ) یوزر و پسورد و ip یکتا نیز موجود هست!
چقدر من پر رو هستم! با تشکر
-
1- اسکریپتی که در ساعات مشخصی اتوماتیک اجرا بشه(در محیط متنی و غیر گرافیکی) و آی پی کامپیوترم رو دریافت و به ایمیلم ارسال کنه!
بجای اینکار از Dynamic DNS استفاده کنید.
-
1- اسکریپتی که در ساعات مشخصی اتوماتیک اجرا بشه(در محیط متنی و غیر گرافیکی) و آی پی کامپیوترم رو دریافت و به ایمیلم ارسال کنه!
بجای اینکار از Dynamic DNS استفاده کنید.
مثلا خود من از noip.com (http://www.noip.com/) استفاده میکنم. آموزش هاش هم تو نت زیاده. یه دامنه بهت میده ولی بدیش اینه که ماهی یکبار باید تأییدش کنی.
-
ویرایش سوم سؤال خودم: (میتونه ایدهای برای ساخت یه برنامه برای اوبونتو-فون و اندروید هم باشه)
سلام.
یه پوشه پر از پروندهی vcf داریم (vcf مخاطب تلفن همراه است).
یه برنامها (اسکریپت)ی میخوام در حد زیر، ولی چون طولانیه فعلا بخشهای مهم اون را مشخص کردم.
اول بپرسه: آ)ویرایش نام ب)ویرایش شماره (فعلا ب برای من مهمه و آ پیشکش)
ویرایش شماره:
؟ چه شمارههایی را میخواهید تغییر دهید؟ (از * بهعنوان رقم متغیر استفاده کنید)
ورودی:
***1930****
خروجی:
**72641****
فرایند:
1. تمام شمارههای 11 رقمی که ارقام 4ام تا 7ام آن 1930 باشد را جدا میکند 2. رقم اول و دوم تقییر نمیکنند 3. رقم سوم هرچه باشد 7 میشود 4. رقمهای 4ام تا 7ام (1930) به 2641 تبدیل میشوند 5. رقمهای 8ام تا 11ام ثابت میمانند.
نکته: این تغییرات، همه شماره تلفن هستند که در یک پروندهی vcf جای خاصی (TEL;ebarate khas:SHOMARE) دارند و نباید قسمت نام و نام خانوادگی را تغییر دهد حتی اگر بهصورت شماره باشد.
برای کار بیشتر: میتواند تنظیمات بیشتری هم در ورودی برنامه باشد; مثلا چه شمارههایی تغییر کنند؟ موبایل، خانه، کار و ... ebarate khas همین خانه و موبایل و ... هستند که کاربر آنها را علامت میزند.
-
فرایند:
1. تمام شمارههای 11 رقمی که ارقام 4ام تا 7ام آن 1930 باشد را جدا میکند 2. رقم اول و دوم تقییر نمیکنند 3. رقم سوم هرچه باشد 7 میشود 4. رقمهای 4ام تا 7ام (1930) به 2641 تبدیل میشوند 5. رقمهای 8ام تا 11ام ثابت میمانند.
نکته: این تغییرات، همه شماره تلفن هستند که در یک پروندهی vcf جای خاصی (TEL;ebarate khas:SHOMARE) دارند و نباید قسمت نام و نام خانوادگی را تغییر دهد حتی اگر بهصورت شماره باشد.
برای کار بیشتر: میتواند تنظیمات بیشتری هم در ورودی برنامه باشد; مثلا چه شمارههایی تغییر کنند؟ موبایل، خانه، کار و ... ebarate khas همین خانه و موبایل و ... هستند که کاربر آنها را علامت میزند.
سوال اول:
الان توی اینحا:
http://en.wikipedia.org/wiki/VCard
شماره رو به با فرمتهای خودشون ذحیره کردند (مثلا توش پرانتز داره..) توی فایلهای شما هم اتمال داره این حالات پیش بیاد؟
یعنی آیا امکان داره شمارهها در فایلهای مختلف با فرمتهای مختلفی ذخیره شد باشند؟!
سوال دوم: در قسمت ۴ اون متن 2641 ثابت هست؟! یا تغییر میکنه؟
یه چند تا نمنونه فایلهاتون رو بذارید بی زحمت
-
سوال اول:
الان توی اینحا:
http://en.wikipedia.org/wiki/VCard
شماره رو به با فرمتهای خودشون ذحیره کردند (مثلا توش پرانتز داره..) توی فایلهای شما هم اتمال داره این حالات پیش بیاد؟
یعنی آیا امکان داره شمارهها در فایلهای مختلف با فرمتهای مختلفی ذخیره شد باشند؟!
همه بدون پرانتز و خط تیره و ... هستند و چنین چیزی تو هیچکدوم ندیدم (طبق نمونه).
البته برخی شمارهها + اولشون داره که نمونه گذاشتم. و اینا هم میخوام قابل تغییر باشند (بعد از سؤال دوم مثال زدم).
سوال دوم: در قسمت ۴ اون متن 2641 ثابت هست؟! یا تغییر میکنه؟
اون 1930 بوده که به 2641 تبدیل شده.
در واقع بعد از هربار اجرای برنامه ازم ورودی و خروجی میخواد که من اون دو شکل را مثلا وارد میکنم و ممکنه یه چیز دیگه بدم. (مثلا ورودی: +98**754***** و خروجی: 0*4931***** که آ. میاد شمارههای 13 رقمی به شکل ورودی را جدا میکنه. ب. سه حرف اول (+98) را حذف و بجاش یک صفر میگذاره مثل خروجی. پ. بعد در شمارهی جدید رقم دوم تغییر نمیکنه. ت. رقم سوم هرچی هست به 4 تبدیل میشه. ث. سه رقم بعد (754) به 931 تبدیل میشه. ج. پنج رقم آخر هرچی هستن تغییری نمیکنن.