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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: Yaser-16 در 17 اسفند 1392، 03:44 ب‌ظ

عنوان: regular expression در bash
ارسال شده توسط: Yaser-16 در 17 اسفند 1392، 03:44 ب‌ظ
سلام
شروع کردم به یاد گرفتن بش اسکریپت و توی یکی دو تا موضوع(فعلا :D) مشکل دارم:
یه فایلی دارم با محتوای:
testttest
اسم فایل رو گذاشتم T
می خوام با grep قسمتی که دو یا بیشتر از دو تا t پشت سر هم اومدن رو مشخص کنه،خوب الگوش می شه یه همچین چیزی:
t{2,}این الگو توی شرط که بررسی می شه درست کار می کنه ولی با grep نه!
من این رو توی ترمینال می زنم ولی نتیجه درست نداره!
grep "t{2,}" T
کلا هیچ الگویی که توش از کاراکتر های {}+ استاده شده باشه رو قبول نمی کنه!
سوال اول اینه که مشکل کجاست و سوال دوم اینه که این الگو ها چه زمانی باید داخل کوتیشن/دابل کوتیشن و چه زمانی باید بدون کوتیشن باشن؟
مرسی :)
عنوان: پاسخ : regular expression در bash
ارسال شده توسط: doomhammer65ir در 17 اسفند 1392، 05:14 ب‌ظ
man grepبخش Matcher Selection را بخوانید شاید الگو سازگار با یکی از این گزینه ها باشد
عنوان: پاسخ : regular expression در bash
ارسال شده توسط: محسن صفری در 17 اسفند 1392، 05:16 ب‌ظ
egrep 'tt+' filename

دستور egrep توسعه یافته  یا همون extended دستور grepهستش و توش + تعریف شده . و معنی + این هست که کارکتر قبلیش حداقل یکبار تکرار شده باشه .
عنوان: پاسخ : regular expression در bash
ارسال شده توسط: Yaser-16 در 17 اسفند 1392، 05:26 ب‌ظ
واقعا ممنونم از هر دو :)
دستور grep هم اینجوری باید تغییر می کرد:
grep "tt\{2,\}" Tباز هم ممنونم:)