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

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

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

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

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

آفلاین watermelon

  • Full Member
  • *
  • ارسال: 152
  • جنسیت : پسر
  • Think different
کار روی متون با روبی
« : 21 دی 1395، 09:04 ب‌ظ »
اگر یک متن داشته باشیم و بخوایم خطی رو که عبارت مورد نظر توش هست در بیاریم ، باید چی کار کنیم . مثلا یه همچین متنی داریم و به دنبال "stallman" هستیم :‌

GNU is not Unix
free as freedom
i Love stallman
and ...
در یه همچین متنی می خواییم خطی که حاوی عبارت stallman هست رو خارج کنیم. (یعنی بدیمش به یه متغیر)
(فرض بر این هستش که متن خیلی طولانی
سخن بزرگان :‌ آدم با چیز هایی که تولید می کنه شناخته می شه ،‌ نه با چیز هایی که مصرف می کنه
 
«دانیال بهزادی»

آفلاین shayan.z

  • Jr. Member
  • *
  • ارسال: 27
  • جنسیت : پسر
پاسخ : کار روی متون با روبی
« پاسخ #1 : 23 دی 1395، 05:39 ب‌ظ »
اگر یک متن داشته باشیم و بخوایم خطی رو که عبارت مورد نظر توش هست در بیاریم ، باید چی کار کنیم . مثلا یه همچین متنی داریم و به دنبال "stallman" هستیم :‌

GNU is not Unix
free as freedom
i Love stallman
and ...
در یه همچین متنی می خواییم خطی که حاوی عبارت stallman هست رو خارج کنیم. (یعنی بدیمش به یه متغیر)
(فرض بر این هستش که متن خیلی طولانی

با سلام.

من همچین برنامه ای رو نوشتم و در Github Gist م گذاشتم

https://gist.github.com/shayanzare007/44fa85270eadf4ac16dacc4265cb9a2f

#!/usr/bin/ruby

File.open("License.txt") do |f|           #open file
  f.each_line do |line|
    text = [/sh/, /123/]                  #array for searching
    if line =~ text[0] || text[1]         #searching in file
      puts "[+] Found License: #{line}"   #puts founding word
    else
      puts "[+] License is not found!"
    end
  end
end

این سورس میاد تک تک خط ها تو فایل text رو میگرده و هرچیزی رو که پیدا کرد بهتون میگه.

هرگونه سوالی بود در خدمتم.
« آخرین ویرایش: 23 دی 1395، 05:41 ب‌ظ توسط shayan.z »

آفلاین ارباب!

  • Sr. Member
  • *
  • ارسال: 434
  • جنسیت : پسر
پاسخ : کار روی متون با روبی
« پاسخ #2 : 23 دی 1395، 08:31 ب‌ظ »
(در خط فرمان دستور grep رو ببینید (global regular expression print):
man grepمثلا:
cat file.txt | grep stallman)

برای استفاده از regular expression در Ruby:
https://stackoverflow.com/questions/633396/whats-the-best-way-to-search-for-a-string-in-a-file
« آخرین ویرایش: 23 دی 1395، 09:34 ب‌ظ توسط ارباب! »
Void Linux + Cinnamon