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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: watermelon در 21 دی 1395، 09:04 ب‌ظ

عنوان: کار روی متون با روبی
ارسال شده توسط: watermelon در 21 دی 1395، 09:04 ب‌ظ
اگر یک متن داشته باشیم و بخوایم خطی رو که عبارت مورد نظر توش هست در بیاریم ، باید چی کار کنیم . مثلا یه همچین متنی داریم و به دنبال "stallman" هستیم :‌

GNU is not Unix
free as freedom
i Love stallman
and ...
در یه همچین متنی می خواییم خطی که حاوی عبارت stallman هست رو خارج کنیم. (یعنی بدیمش به یه متغیر)
(فرض بر این هستش که متن خیلی طولانی
عنوان: پاسخ : کار روی متون با روبی
ارسال شده توسط: shayan.z در 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 (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، 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 (https://stackoverflow.com/questions/633396/whats-the-best-way-to-search-for-a-string-in-a-file)