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

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

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


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

نویسنده موضوع: regular expression در bash  (دفعات بازدید: 966 بار)

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

آفلاین Yaser-16

  • Hero Member
  • *
  • ارسال: 720
  • جنسیت : پسر
regular expression در bash
« : 17 اسفند 1392، 03:44 ب‌ظ »
سلام
شروع کردم به یاد گرفتن بش اسکریپت و توی یکی دو تا موضوع(فعلا :D) مشکل دارم:
یه فایلی دارم با محتوای:
testttest
اسم فایل رو گذاشتم T
می خوام با grep قسمتی که دو یا بیشتر از دو تا t پشت سر هم اومدن رو مشخص کنه،خوب الگوش می شه یه همچین چیزی:
t{2,}این الگو توی شرط که بررسی می شه درست کار می کنه ولی با grep نه!
من این رو توی ترمینال می زنم ولی نتیجه درست نداره!
grep "t{2,}" T
کلا هیچ الگویی که توش از کاراکتر های {}+ استاده شده باشه رو قبول نمی کنه!
سوال اول اینه که مشکل کجاست و سوال دوم اینه که این الگو ها چه زمانی باید داخل کوتیشن/دابل کوتیشن و چه زمانی باید بدون کوتیشن باشن؟
مرسی :)
آنان که آزادی را فدای امنیت می‌کنند، نه شایستگی آزادی را دارند و نه لیاقت امنیت را!   بنیامین فرانکلین

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ : regular expression در bash
« پاسخ #1 : 17 اسفند 1392، 05:14 ب‌ظ »
man grepبخش Matcher Selection را بخوانید شاید الگو سازگار با یکی از این گزینه ها باشد

آفلاین محسن صفری

  • Jr. Member
  • *
  • ارسال: 47
  • جنسیت : پسر
    • صفری آنلاین
پاسخ : regular expression در bash
« پاسخ #2 : 17 اسفند 1392، 05:16 ب‌ظ »
egrep 'tt+' filename

دستور egrep توسعه یافته  یا همون extended دستور grepهستش و توش + تعریف شده . و معنی + این هست که کارکتر قبلیش حداقل یکبار تکرار شده باشه .

آفلاین Yaser-16

  • Hero Member
  • *
  • ارسال: 720
  • جنسیت : پسر
پاسخ : regular expression در bash
« پاسخ #3 : 17 اسفند 1392، 05:26 ب‌ظ »
واقعا ممنونم از هر دو :)
دستور grep هم اینجوری باید تغییر می کرد:
grep "tt\{2,\}" Tباز هم ممنونم:)
آنان که آزادی را فدای امنیت می‌کنند، نه شایستگی آزادی را دارند و نه لیاقت امنیت را!   بنیامین فرانکلین