انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: اسکریپت نویسی با لینوکس  (دفعات بازدید: 7214 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین mohenmir

  • Newbie
  • *
  • ارسال: 15
  • جنسیت : پسر
اسکریپت نویسی با لینوکس
« : 25 اردیبهشت 1391، 12:14 ق‌ظ »
با سلام و درود
من یه سوال خیلی مهم داشتم که به جوابش فوری احتیاج دارم و از دوستان تمنا دارم تا آخر همکاری کنند تا یه اسکریپت خوبی رو باهم بسازیم

اسکریپتی که مد نظر من هست اینه که وقتی یه فایل متنی که داخل اون یسری اطلاعات داخلش هست رو بگیره و تمامی آدرس های ایمیل و وب رو ازش جدا کنه برای اینکار از سرویس ترمینال استفاده میکنیم و با دستور زیر یه فایلی رو ایجاد میکنیم و داخلش رو باید اطلاعاتی رو قرار بدیم که این کار رو انجام بده
gvim MyScripitداخل اون یکسری دستورات باید قرار بگیره که بتونه ساختار Mail و Web رو تشخیص بده که بنظر من میتونیم از regular expression استفاده کنیم
ساختار میل
[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})ساختار وب
(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?نکته : برای تست این ساختار میتونیم از نرم افزار تحت ویندوز RegexBuddy هم استفاده کنید
حالا این فایل رو چطور باید ویرایش بشه که بتونه همچین کاری رو انجام داد
و در آخراینکه فایل نوشته شد و از اون خارج شدیم برای اجراش باید به فورمت اجرایی تبدیل بشه برای اینکار از دستور زیر استفاده میکنیم
Chmod +x MyScriptو با دستور زیر اسکریپت رو اجرا کنیم
./MyScript
دوستان لطف کنند کمک کنند با هم اینو راه بندازیم منم سعی میکنم هرچیزی درابطه با این موضوع میدونم و بدرد میخوره بگم بلکه یه آموزش هم در این مورد داده بشه و مشکل من هم حل بشه
با تشکر

آفلاین mohenmir

  • Newbie
  • *
  • ارسال: 15
  • جنسیت : پسر
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #1 : 26 اردیبهشت 1391، 12:08 ب‌ظ »
کسی نیست که یه کمکی بمن بکنه من خیلی احتیاج دارم  :(

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #2 : 26 اردیبهشت 1391، 12:37 ب‌ظ »
grep -o -e 'REGEX INJA' < FILE.TXT

آفلاین mohenmir

  • Newbie
  • *
  • ارسال: 15
  • جنسیت : پسر
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #3 : 26 اردیبهشت 1391، 07:09 ب‌ظ »
خیلی از شما ممنونم میتونید کمکم کنید و بهم بگید این اسکریپتی که به یه فایل اجرایی تبدیل کردم چطوری میشه اونو Make کرد یعنی طوری درست کرد تبدیل به یه فایل نصب تبدیل بشه و با اجراش هم فایل اصلی هم فایل مربوط به man اون داخل پوشه اصلیش ریخته بشه

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #4 : 26 اردیبهشت 1391، 08:14 ب‌ظ »
این برنامه چیز ویژه ای نداره
شما همینو کپی کن توی /usr/bin/ دسترسی هم 755 بده . راهنما ها رو نمیدونم کجا باید کپی کنید .
make برای برنامه هایی هست که باید کامپایل هم بشن یعنی از روی منبع دونه دونه کامپایل کنن و سرهم بندی انجام بشه . برای همچه اسکریپت ساده ای نیاز نیست

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #5 : 26 اردیبهشت 1391، 08:50 ب‌ظ »
راهنمایی هم که نوشتید رو در :

/usr/share/doc
کپی کنید ؛ وقتی کاربر از دستور:

man <command>
استفاده کنه میگرده تو اون فولدر و راهنما رو نشون میده ;)
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین mohenmir

  • Newbie
  • *
  • ارسال: 15
  • جنسیت : پسر
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #6 : 27 اردیبهشت 1391، 01:51 ب‌ظ »
یه دنیا ممنون از شما دوستان
ولی بنا به سفارش استادمون باید اینو بصورت Make در بیارم تا چگونکی ساختش رو یاد بگیرم بعد استادمون یه پرژه بزرگی رو در اختیارمون بزاره و این روند رو انجام بدم
اگه نحوه ساخش رو توضیح بدین یه دنیا دیگه ممنون میشم

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #7 : 27 اردیبهشت 1391، 02:18 ب‌ظ »
اگر منظورتون اینه که برنامه ای باشه که نصاب داشته باشه؛ راه ساده تری نسبت به Make هست و اونم ساخت بسته دب هست ؛ Make هم برای یک شل اسکریپت ساده به کار نمیبرند معمولا ولی نمیدونم چرا از شما چنین چیزی خواسته شده!
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #8 : 27 اردیبهشت 1391، 03:30 ب‌ظ »
ببخشیدا! استادت یه کم پرته از مرحله :D می‌تونی makefile دستی بنویسی براش که این‌دوتا پرونده رو کپی کنه
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #9 : 27 اردیبهشت 1391، 04:12 ب‌ظ »
یه دنیا ممنون از شما دوستان
ولی بنا به سفارش استادمون باید اینو بصورت Make در بیارم تا چگونکی ساختش رو یاد بگیرم بعد استادمون یه پرژه بزرگی رو در اختیارمون بزاره و این روند رو انجام بدم
اگه نحوه ساخش رو توضیح بدین یه دنیا دیگه ممنون میشم

شما فولدر usr و محتویاتش رو درست کن ؛ هرچیزی که میخوای هرجا کپی بشه (یادت باشه الان به شکل زیر فولدر نیاز داری):
usr/bin ; usr/share/doc
خب اسکریپت و ... که نوشتی رو توی این فولدرهای دستی قرار بده ؛ بعد کنارش یک فایل درست کن به اسم makefile و این کد رو درونش بزار:
sudo cp -R usr /usr /
تا کپی بشه!
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین mohenmir

  • Newbie
  • *
  • ارسال: 15
  • جنسیت : پسر
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #10 : 28 اردیبهشت 1391، 12:41 ب‌ظ »
grep -o -e 'REGEX INJA' < FILE.TXT
با سلام و درود
اسکریپتی رو ساختم و درونش رو با کد زیر پر کردم
#!/bin/sh
cat $1 | tr ' ' '\n' | grep -E -o '[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})'
و با دستور زیر اسکریپت اجرا میشه
./myscript testتا اینجا مشکلی نداشتم اما حالا میخوام علاوه بر ایمیل ها ، وب آدرس ها رو هم نشون بده ولی با اضافه کردن کد زیر دیگه کار نمیکنه
#!/bin/sh
cat $1 | tr ' ' '\n' | grep -E -o '[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})' | grep -E -o '(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?'

لطفا کمکم کنید بتونم این مشکل هم رفع کنم

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #11 : 28 اردیبهشت 1391، 01:03 ب‌ظ »
از مغزت استفاده کن ببین چکار کردی .
نکته :
نشانک | رو بهش میگن لوله کشی . برون ده فرمان چپ رو به عنوان ورودی فرمان سمت راست لوله کشی میکنه . حالا ببین به اخرین فرمان grep چی رو به عنوان ورودی دادی

آفلاین mohenmir

  • Newbie
  • *
  • ارسال: 15
  • جنسیت : پسر
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #12 : 28 اردیبهشت 1391، 06:08 ب‌ظ »
نشانک | رو بهش میگن لوله کشی . برون ده فرمان چپ رو به عنوان ورودی فرمان سمت راست لوله کشی میکنه . حالا ببین به اخرین فرمان grep چی رو به عنوان ورودی دادی
درست میگید حق با شماست شرمنده من حالا وب آدرس رو جداگانه نوشتم چون ایمیل آدرس کار میکرد و هرچی اینو دستکاری میکنم بازم کار نمیکنه ولی در حالی که با RegexBuddy کار میکنه حسابی گیج شدم لطفا راهنماییم کنید
#!/bin/sh
cat $1 | tr ' ' '\n' | grep -E -o '(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?'
« آخرین ویرایش: 28 اردیبهشت 1391، 06:21 ب‌ظ توسط mohenmir »

آفلاین H2010n

  • Sr. Member
  • *
  • ارسال: 451
  • جنسیت : پسر
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #13 : 28 اردیبهشت 1391، 06:28 ب‌ظ »
از مغزت استفاده کن ببین چکار کردی .
نکته :
نشانک | رو بهش میگن لوله کشی . برون ده فرمان چپ رو به عنوان ورودی فرمان سمت راست لوله کشی میکنه . حالا ببین به اخرین فرمان grep چی رو به عنوان ورودی دادی
قبلنا اسمش پایپ بود

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : اسکریپت نویسی با لینوکس
« پاسخ #14 : 28 اردیبهشت 1391، 06:30 ب‌ظ »
از مغزت استفاده کن ببین چکار کردی .
نکته :
نشانک | رو بهش میگن لوله کشی . برون ده فرمان چپ رو به عنوان ورودی فرمان سمت راست لوله کشی میکنه . حالا ببین به اخرین فرمان grep چی رو به عنوان ورودی دادی
قبلنا اسمش پایپ بود

ایشون ترجمه کرده ولی فکر نکنم سازمانی و رسمی باشه اینگونه ترجمه :)
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود