بخش های سایت
انتخاب سردبیر:
- تنظیم مجدد کارخانه سامسونگ گلکسی A3
- بایوس: از دیسک بوت شود
- نحوه بوت کردن از دی وی دی یا درایو فلش "نصب" - راه اندازی بایوس در تصاویر
- چگونه زمان بندی رم را به درستی تنظیم کنیم؟
- نصب Navitel بر روی ناوبر و کامپیوتر
- رمز عبور سرور Minecraft را از طریق حساب شخصی خود و در مشتری تغییر دهید
- کابل اسپیکر چیست
- استفاده از رایانه به عنوان تلفن
- نحوه استفاده از گوشی هوشمند به عنوان مودم برای لپ تاپ
- نحوه اتصال تلویزیون دوم به گیرنده یا ستاپ باکس تلویزیون دیجیتال
تبلیغات
عبارات منظم لینوکس استفاده از Grep و عبارات با قاعده برای یافتن الگوهای متن در عبارات منظم یونیکس لینوکس |
در مورد این آموزشبه مدیریت پایه، دومین آموزش از چهار آموزش طراحی شده برای آماده سازی شما برای آزمون 101 موسسه حرفه ای لینوکس خوش آمدید. در این قسمت به نحوه استفاده از عبارات منظم برای جستجوی متن در فایل ها با استفاده از الگوها خواهیم پرداخت. در ادامه با "استاندارد سلسله مراتبی" آشنا می شوید. سیستم فایل"(Filesystem Hierarchy Standard یا به اختصار FHS)، ما همچنین به شما نشان خواهیم داد که چگونه پیدا کنید فایل های لازمروی سیستم شما پس از آن، شما یاد خواهید گرفت که چگونه با اجرای آن ها در لینوکس، کنترل کاملی بر روی فرآیندها به دست آورید زمینه، مشاهده لیست فرآیندها، جدا کردن آنها از ترمینال و موارد دیگر. آنچه در ادامه می آید معرفی سریع خطوط لوله، تغییر مسیرها و دستورات پردازش متن است. در نهایت ماژول های هسته لینوکس را به شما معرفی می کنیم. به طور خاص، این بخش از آموزش (قسمت 2) برای کسانی ایده آل است که قبلاً دانش پایه خوبی از bash دارند و می خواهند با وظایف اساسی مدیریت لینوکس آشنا شوند. اگر در لینوکس تازه کار هستید، توصیه می کنیم ابتدا قسمت 1 این سری آموزش را به پایان برسانید. برای برخی، بیشتر این مطالب جدید خواهد بود، اما برای کسانی که تجربه بیشتری دارند کاربران لینوکسممکن است آن را راهی عالی برای خلاصه کردن مهارتهای اساسی مدیریت خود بدانند. اگر نسخه اول این آموزش را برای هدفی غیر از آمادگی برای آزمون LPI مطالعه کرده اید، ممکن است نیازی به خواندن مجدد این نسخه نداشته باشید. با این حال، اگر قصد شرکت در آزمون را دارید، اکیداً به شما توصیه می شود این نسخه اصلاح شده آموزش را دوباره بخوانید. عبارات با قاعده"بیان منظم" چیست؟یک عبارت منظم (در عبارت منظم انگلیسی، به اختصار "regexp" یا "regex"، در کشور ما گاهی اوقات به آن "قاعده" می گویند - تقریباً خط) یک نحو خاص است که برای توصیف استفاده می شود. قالب های متنی. در سیستم های لینوکس، عبارات منظم به طور گسترده برای جستجوی الگو در متن، و همچنین برای عملیات جستجو و جایگزینی در جریان متن استفاده می شود. در مقایسه با globbingهنگامی که شروع به بررسی عبارات منظم می کنیم، ممکن است متوجه شوید که نحو آنها بسیار شبیه به نحو globbing است که در قسمت 1 به آن نگاه کردیم. با این حال، اشتباه نکنید، این شباهت بسیار سطحی است. عبارات منظم و الگوهای globbing، حتی زمانی که شبیه به نظر می رسند، اساسا چیزهای متفاوتی هستند. زیر رشته سادهبا این اخطار خارج از راه، اجازه دهید به اساسی ترین چیز در مورد عبارات منظم، ساده ترین رشته فرعی نگاه کنیم. برای انجام این کار، از "grep" استفاده می کنیم، دستوری که محتویات یک فایل را با توجه به یک عبارت منظم اسکن می کند. grep هر خطی را که با عبارت معمولی مطابقت دارد چاپ می کند و بقیه را نادیده می گیرد: $ grep bash /etc/passwd در بالا، اولین پارامتر برای grep regex است. دومی نام فایل است. grep خواندن هر خط از /etc/passwdو یک زیر رشته regex ساده "bash" را در جستجوی یک تطابق به آن اعمال کرد. اگر مطابقت پیدا شد، grep کل خط را چاپ کرد. در غیر این صورت، خط نادیده گرفته شد. درک یک زیر رشته سادهبه طور کلی، اگر به دنبال یک رشته فرعی هستید، می توانید به سادگی آن را بدون استفاده از هیچ کاراکتر «ویژه» به معنای واقعی کلمه مشخص کنید. فقط در صورتی که زیررشته شما حاوی +، .، *، [،] یا \ باشد، باید مراقب باشید، در این صورت این کاراکترها باید با یک اسلش خارج شوند و رشته فرعی در گیومه قرار گیرد. در اینجا چند نمونه از عبارات منظم به عنوان یک زیر رشته ساده آورده شده است:
متا شخصیت هابا عبارات منظم، با استفاده از متاکاراکترها، می توان جستجوهای بسیار پیچیده تری نسبت به نمونه هایی که اخیراً به آنها نگاه کردیم، انجام داد. یکی از این متاکاراکترها "." (نقطه)، که با هر کاراکتری مطابقت دارد: $ grep dev.sda /etc/fstab در این مثال، متن dev.sda به معنای واقعی کلمه در هیچ یک از خطوط از ظاهر نمی شود /etc/fstab. با این حال، grep آن را نه به معنای واقعی کلمه توسط خط dev.sda، بلکه توسط الگوی dev.sda اسکن می کند. به یاد بیاور "." با هر شخصیت منفرد مطابقت خواهد داشت. همانطور که می بینید، متاکاراکتر "." از نظر عملکردی معادل نحوه عملکرد متاکاراکتر "?" است. در تعویض های گلوب استفادهاگر بخواهیم در مورد یک کاراکتر دقیق تر از "." باشیم، می توانیم از [ و ] (پرانتزهای مربع) برای تعیین زیر مجموعه ای از کاراکترها برای مطابقت استفاده کنیم: $ grep dev.sda /etc/fstab همانطور که متوجه شدید، به طور خاص، این ساختار نحوی در هنگام جایگزینی نام فایلها به طور یکسان با ساختار "" کار میکند. باز هم، این یکی از ابهامات در یادگیری عبارات منظم است: نحو مشابه، اما نه یکسان، به نحو جایگزین های glob است، که گیج کننده است. با استفاده از [^]میتوانید با قرار دادن یک ^ بلافاصله بعد از [، معنای کروشهها را معکوس کنید. در این حالت، براکت ها با هر کاراکتری که در داخل آنها فهرست نشده است مطابقت خواهند داشت. و دوباره توجه کنید که از [^] با یک عبارت منظم و [!] با یک glob استفاده می کنیم: $ grep dev.hda[^12] /etc/fstab نحو متفاوتتوجه به این نکته بسیار مهم است که نحو داخل کروشه ها اساساً با بقیه عبارت های معمولی متفاوت است. به عنوان مثال، اگر شما "." در داخل براکت های مربع، این اجازه می دهد تا براکت های مربع با "." به معنای واقعی کلمه، درست مانند 1 و 2 در مثال بالا. برای مقایسه، "." قرار دادن خارج از پرانتز مربع به عنوان یک متاکاراکتر تفسیر می شود مگر اینکه یک "\" اضافه شود. می توانیم بهره مند شویم این حقیقتبرای چاپ خطوطی از /etc/fstab که حاوی خط dev.sda به صورت نوشته شده است: $ grep dev[.]sda /etc/fstab همچنین می توانیم تایپ کنیم: $ grep "dev\.sda" /etc/fstab این عبارات منظم احتمالاً با یک خط از شما مطابقت ندارند /etc/fstabفایل. ماتاسمبول *برخی از متا شخصیت ها با هیچ چیزی مطابقت ندارند، اما معنای شخصیت قبلی را تغییر می دهند. یکی از این کاراکترها * (ستاره) است که برای مطابقت با تکرارهای صفر یا بیشتر از کاراکتر قبلی استفاده می شود. توجه داشته باشید که این بدان معنی است که * در regex معنای متفاوتی نسبت به globbing دارد. در اینجا چند مثال آورده شده است و به مواردی که تطبیق عبارت منظم با جایگزینی glob متفاوت است، توجه ویژه داشته باشید:
بنابراین، برای تقویت تکرار می کنیم: خط "ac" با عبارت منظم "ab*c" مطابقت دارد زیرا ستاره همچنین اجازه می دهد تا عبارت قبلی (b) صفر بار تکرار شود. و دوباره، توجه به این نکته مهم است که متاکاراکتر * در عبارات منظم کاملاً متفاوت از کاراکتر * در جایگزینهای glob تفسیر میشود. شروع و پایان خطآخرین متاکاراکترهایی که به طور مفصل به آنها نگاه خواهیم کرد ^ و $ هستند که به ترتیب برای مطابقت با ابتدا و انتهای یک رشته استفاده می شوند. با استفاده از یک ^ در ابتدای regex خود، الگوی خود را به ابتدای خط "لنگر" می کنید. در مثال زیر از عبارت منظم ^# استفاده می کنیم که با هر رشته ای که با کاراکتر # شروع می شود مطابقت دارد:
$ grep ^# /etc/fstab معمولی های تمام خط^ و $ را می توان برای مطابقت با کل رشته ترکیب کرد. برای مثال، عبارت منظم زیر خطوطی را که با کاراکتر # شروع میشوند و با کاراکتر "." ختم میشوند، با تعداد دلخواه کاراکتر بین آنها مطابقت میدهد:
$ grep "^#.*\.$" /etc/fstab در مثال بالا، عبارت منظم خود را در یک نقل قول قرار دادیم تا پوسته از تفسیر کاراکتر $ جلوگیری کند. بدون نقل قول، $ قبل از اینکه grep بتواند آن را ببیند، از regex ما ناپدید می شود. درباره نویسندگاندنیل رابینزدانیل رابینز - بنیانگذار و خالق انجمن جنتو سیستم عاملجنتو لینوکس. دانیل با همسرش مری و دو دختر پرانرژی در نیومکزیکو زندگی می کند. او همچنین بنیانگذار و مدیر عامل Funtoo است و مقالات فنی متعددی برای IBM developerWorks، Intel Developer Services و C/C++ Users Journal نوشته است. کریس هاوسرکریس هاوسر از سال 1994، زمانی که به تیم اداری دانشگاه تیلور (ایندیانا، ایالات متحده آمریکا) پیوست و در آنجا مدرک لیسانس خود را در علوم کامپیوتر و ریاضیات دریافت کرد، مدافع یونیکس بوده است. او از آن زمان در زمینه های مختلفی از جمله برنامه های کاربردی وب، ویرایش ویدیو، درایورهای یونیکس و امنیت رمزنگاری کار کرده است. که در در حال حاضردر Sentry Data Systems کار می کند. کریس همچنین در بسیاری از پروژههای رایگان مانند Gentoo Linux و Clojure مشارکت داشته و کتاب The Joy of Clojure را نیز تالیف کرده است. آرون گریفیسآرون گریفیس در بوستون زندگی می کند، جایی که دهه گذشته را در Hewlett-Packard روی پروژه هایی مانند درایورهای شبکه یونیکس برای Tru64، گواهینامه امنیتی لینوکس، Xen و مجازی سازی KVMو اخیراً پلتفرم HP ePrint. وقتی او برنامه نویسی نمی کند، آرون دوست دارد در حین دوچرخه سواری، شعبده بازی با خفاش یا تشویق تیم بیسبال حرفه ای بوستون رد ساکس به مشکلات برنامه نویسی فکر کند. یکی از دستورات مفید و غنی در ترمینال لینوکس، دستور grep است. این نام مخفف عبارت انگلیسی "جستجوی جهانی برای خطوط مطابق با عبارت منظم، و چاپ آنها" است (در همه جا خطوط منطبق با عبارت منظم را جستجو کنید و آنها را چاپ کنید). دستور "grep" جریان ورودی را خط به خط اسکن می کند، و فقط به دنبال موارد منطبق و خروجی (فیلترها) می گردد که حاوی متنی است که با الگوی داده شده مطابقت دارد - عبارت منظم. عبارات منظم یک زبان رسمی ویژه برای جستجو و دستکاری زیر رشته ها در متن، بر اساس استفاده از متاکراکترها هستند. اکنون تقریباً تمام زبان های برنامه نویسی مدرن از عبارات منظم برای پردازش متن پشتیبانی می کنند، اما از نظر تاریخی دنیای یونیکس و به ویژه ایده های تعبیه شده در دستورات "grep"، "sed" و غیره کمک زیادی کرده است. فلسفه "همه چیز یک فایل است" به طور کامل در یونیکس نفوذ می کند و تسلط بر ابزارهای کار با فایل های متنی یکی از مهارت های مورد نیاز هر کاربر لینوکس است. نمونهGIST | جستجوی ساده برای تمام خطوطی که حاوی متن "آدامز" هستند. هنگام قالببندی این و نمونههای بعدی، به ترتیب زیر عمل میکنیم: پارامترهای خط فرمان در بالا، جریانهای استاندارد در پایین، ورودی stdin در سمت چپ و خروجی stdout در سمت راست. دستور "grep" دارای تعداد قابل توجهی از گزینه ها است که می توانید هنگام اجرای آن مشخص کنید. شما می توانید با این گزینه ها کارهای مفید زیادی انجام دهید و حتی نیازی به تسلط به نحو عبارات منظم ندارید. گزینه هابیایید با این واقعیت شروع کنیم که "grep" نه تنها می تواند ورودی استاندارد stdin را فیلتر کند، بلکه می تواند در میان فایل ها نیز جستجو کند. به طور پیشفرض، grep فقط فایلها را در دایرکتوری فعلی جستجو میکند، اما با گزینه بسیار مفید --recursive، میتوانید به grep بگویید که با شروع از یک دایرکتوری معین به صورت بازگشتی جستجو کند. GIST | به طور پیش فرض، دستور grep به حروف بزرگ و کوچک حساس است. مثال زیر نشان میدهد که چگونه میتوانید بدون حساس بودن به حروف بزرگ و کوچک جستجو کنید، برای مثال «آدامز» و «آدامز» یکسان هستند: نادیده گرفتن "آدامز" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جان آدامز، 1797-1801 GIST | جستجو برعکس است (گاهی اوقات می گویند جستجوی معکوس)، یعنی همه خطوط نمایش داده می شوند به جز آنهایی که دارای الگوی مشخص شده هستند: مسابقه معکوس "آدامز" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جورج واشنگتن، 1789-1797 توماس جفرسون، 1801-1809 GIST | گزینه ها، البته، می توانند و باید با یکدیگر ترکیب شوند. به عنوان مثال، جستجوی معکوس با نمایش شماره سریال خطوط دارای رخداد: شماره خط --مطابقت معکوس "آدامز" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 1: جرج واشنگتن، 1789-1797 3: توماس جفرسون، 1801-1809 GIST | رنگ آمیزی. گاهی اوقات زمانی که کلمه مورد نظر ما با رنگ برجسته شده است راحت است. همه اینها قبلاً در "grep" هستند، تنها چیزی که باقی می ماند شامل موارد زیر است: شماره خط --color=همیشه "آدامز" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 2: جان آدامز، 1797-1801 GIST | ما می خواهیم همه خطاها را از فایل log انتخاب کنیم، اما می دانیم که خط بعدی بعد از خطا ممکن است حاوی باشد اطلاعات مفید، سپس خروجی چندین خط از متن راحت است. بهطور پیشفرض، grep فقط خطی را که مطابقت پیدا شده است چاپ میکند، اما گزینههای مختلفی برای چاپ بیشتر grep وجود دارد. برای خروجی چند خط (در مورد ما دو) پس از یک ورودی: رنگ = همیشه -A2 "آدامز" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جیمز مدیسون، 1809-1817 جیمز مونرو، 1817-1825 جان آدامز، 1797-1801، 1797-1801 توماس جفرسون، 1891-1801- James Madison، 1891-1809 GIST | به همین ترتیب برای خروجی اضافی چندین خط قبل از ورود: رنگ = همیشه -B2 "جیمز" جورج واشنگتن ، 1789-1797 جان آدامز ، 1797-1801 توماس جفرسون ، 1801-1809 جیمز مدیسون ، 1809-1817 جیمز مونرو ، 1817-1825 جان آدامز ، 1797-1801 توماس جفرسون ، 1801-1809 جیمز مدیسون ، 1809-1817 جیمز مونرو ، 1817-1825 GIST | با این حال، اغلب شما نیاز به نمایش یک زمینه متقارن دارید؛ نمادی حتی کوتاهتر برای این کار وجود دارد. بیایید دو خط را در بالا و پایین ورودی چاپ کنیم: رنگ = همیشه -C2 "جیمز" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جیمز مدیسون، 1809-1817 جیمز مونرو، 1817-1825 جان کوئینسی آدامز، 1825-1829، 1825-1829، 1825-1829، 1825-1829، مارتین ون318-1829-1829-1829-1829-1829-1825-1829، اندرو ون318-1809-1809. جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جیمز مدیسون، 1809-1817 جیمز مونرو، 1817-1825 جان کوئینسی آدامز، 1825-1829 اندرو جکسون، 1829-1837 GIST | وقتی qwe را جستجو می کنید، به طور پیش فرض "grep" نیز qwe123، 345qwerty و ترکیب های مشابه را خروجی می دهد. بیایید فقط آن خطوطی را پیدا کنیم که کل کلمه را خاموش می کنند: Word-regexp --color=همیشه "جان" جان فیتزجرالد کندی، 1961-1963 لیندون بینز جانسون، 1963-1969 جان فیتزجرالد کندی، 1961-1963 GIST | و در نهایت، اگر فقط میخواهید تعداد خطوطی را که با یک عدد منطبق هستند بدانید، اما چیز دیگری را نمایش ندهید: شمارش --color=همیشه "جان" جان فیتزجرالد کندی، 1961-1963 لیندون بینز جانسون، 1963-1969 ریچارد میلهوس نیکسون، 1969-1974 2 شایان ذکر است که اکثر گزینه ها یک همتای دارند، برای مثال --ignore-case را می توان به شکل کوتاهتر -i و غیره کاهش داد. عبارات با قاعده اساسیتمام عبارات منظم از دو نوع کاراکتر تشکیل شده اند: استاندارد کاراکترهای متن، تماس گرفت به معنای واقعی کلمه، و کاراکترهای خاص نامیده می شود متا شخصیت ها. در مثالهای قبلی، جستجو با استفاده از حروف واقعی (تطابق دقیق حروف) انجام شد، اما آنچه در ادامه میآید بسیار جالبتر خواهد بود. به دنیای عبارات منظم خوش آمدید! علامت های caret ^ و dollar $ در یک عبارت منظم معانی خاصی دارند. آنها "لنگر" نامیده می شوند. لنگرها هستند نمادهای خاص، که مکان را در رشته مطابقت مورد نظر نشان می دهد. هنگامی که جستجو به یک لنگر می رسد، بررسی می کند که آیا مطابقت دارد یا خیر، و اگر چنین است، به دنبال الگو ادامه می دهد. بدون اینکه چیزی به نتیجه اضافه شود. GIST | لنگر caret برای نشان دادن اینکه عبارت منظم باید از ابتدای خط آزمایش شود استفاده می شود: رنگ = همیشه "^J" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جان آدامز، 1797-1801 GIST | به طور مشابه، لنگر دلار باید در انتهای الگو استفاده شود تا نشان دهد که تطابق تنها در صورتی معتبر است که رشته کاراکتر مورد جستجو در انتهای رشته متن باشد نه در غیر این صورت: رنگ = همیشه "9$" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 توماس جفرسون، 1801-1809 GIST | هر شخصیتی کاراکتر نقطه در عبارات منظم استفاده می شود تا نشان دهد که مطلقاً هر کاراکتری می تواند در مکان مشخص شده ظاهر شود: رنگ = همیشه "0.$" GIST | محافظ. اگر دقیقاً باید نماد نقطه را پیدا کنید، فرار کمک خواهد کرد. یک کاراکتر فرار (معمولاً یک اسلش معکوس) قبل از یک کاراکتر مانند یک نقطه، متاکاراکتر را به یک حرف واقعی تبدیل می کند: رنگ = همیشه "\." جرج واشنگتن. 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جورج واشنگتن. 1789-1797 GIST | کلاس های شخصیت. عبارات منظم می توانند از محدوده ها و کلاس های کاراکتر استفاده کنند. برای انجام این کار، هنگام ایجاد الگو از براکت مربع استفاده می شود. با قرار دادن گروهی از کاراکترها (شامل کاراکترهایی که در غیر این صورت به عنوان متاکاراکتر تفسیر می شوند) در داخل پرانتز، می توانید نشان دهید که هر یک از کاراکترهای داخل پرانتز می توانند در آن موقعیت ظاهر شوند: رنگ = همیشه "0" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 GIST | دامنه. اینها دو نویسه هستند که با خط فاصله از هم جدا شده اند، به عنوان مثال 0-9 (اعداد اعشاری) یا 0-9a-fA-F (اعداد هگزا دسیمال): رنگ = همیشه "" جرج واشنگتن، ؟؟؟ جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 GIST | نفی. اگر اولین کاراکتر عبارت در پرانتز یک caret باشد، کاراکترهای باقی مانده به عنوان مجموعه ای از کاراکترها در نظر گرفته می شوند که نباید در موقعیت داده شده عبارت منظم وجود داشته باشند: Color=همیشه "[^7]$" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 GIST | کلاس های کاراکتر POSIX مجموعه خاصی از کلاس های کاراکتر از پیش آماده شده وجود دارد که می توانید در عبارات منظم استفاده کنید. حدود دوازده مورد از آنها وجود دارد، فقط به سرعت به کتابچه راهنمای کاربر نگاه کنید تا هدف هر کدام را بفهمید. به عنوان مثال، اجازه دهید فقط ارقام هگزادسیمال را فیلتر کنیم: Color=همیشه "^[[:xdigit:]]*$" 4.2 42 42abc 42 42abc GIST | تکرار کنید (0 بار یا بیشتر). یکی از متاکاراکترهای پرکاربرد، علامت ستاره است که به معنای "تکرار کاراکتر یا عبارت قبلی صفر یا چند بار" است: رنگ = همیشه "^*$" جرج واشنگتن، ؟؟؟ جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جورج واشنگتن، ??? عبارات منظم اولیه BRE (عبارات منظم پایه) و عبارات منظم گسترده ERE (عبارات منظم گسترده) وجود دارد. متاکاراکترهای زیر در BRE شناسایی می شوند: ^$. * و تمام شخصیت های دیگر به صورت تحت اللفظی رفتار می شوند. آیا متاکاراکترهای زیر به ERE () ( ) اضافه شده اند؟ + | و توابع مرتبط خوب، برای اینکه همه را کاملاً گیج کنند، آنها به این موضوع در "grep" رسیدند - کاراکترهای () ( ) در BRE در صورتی که با یک بک اسلش فرار کنند به عنوان متاکاراکتر در نظر گرفته می شوند، در حالی که در ERE، یک بک اسلش در جلوی هر متاکاراکتری منجر به این واقعیت می شود که با آنها مانند واقعیات رفتار می شود. عبارات منظم پیشرفتهGIST | تفکیک. همانطور که براکتهای مربع تطابقهای ممکن مختلف را برای یک کاراکتر مشخص میکنند، یک تفکیک به شما اجازه میدهد تا مطابقتهای جایگزین را برای رشتههایی از کاراکترها یا عبارات مشخص کنید. نماد نوار عمودی برای نشان دادن تفکیک استفاده می شود: Extended-regexp --color=always "George|John" جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 توماس جفرسون، 1801-1809 جورج واشنگتن، 1789-1797 جان آدامز، 1797-1801 GIST | صفر یا یک زمان را مطابقت دهید. در عبارات منظم توسعهیافته، چندین متاکاراکتر اضافی وجود دارد که نشان میدهد یک کاراکتر یا عبارت چقدر تکرار میشود (مشابه اینکه چگونه متاکاراکتر ستاره تطابقهای ۰ یا بیشتر را نشان میدهد). یکی از این متاکاراکترها علامت سوال است که کاراکتر یا عبارت قبلی را اساسا اختیاری می کند: Extended-regexp --color=همیشه "^(اندرو)؟جان" جان آدامز، 1797-1801 اندرو جانسون، 1865-1869 لیندون بینز جانسون، 1963-1969 جان آدامز، 1797-1801 اندرو جانسون، 1865-1869 GIST | یک یا چند بار مطابقت دهید. برای این منظور یک متاکاراکتر به شکل علامت مثبت ارائه شده است. تقریباً مانند علامت ستاره عمل می کند، با این تفاوت که عبارت باید حداقل یک بار مطابقت داشته باشد: Extended-regexp --color=always "^[[:alpha:] ]+$" جان آدامز اندرو جانسون، 1865-1869 لیندون بینز جانسون، 1963-1969 جان آدامز GIST | تعداد دفعات مشخص شده را مطابقت دهید. برای این کار می توانید از بریس های مجعد استفاده کنید. این متاکاراکترها برای نشان دادن تعداد دقیق، محدوده و حد بالا و پایین تعداد مطابقت یک عبارت استفاده میشوند: Extended-regexp --color=همیشه "(1,3)\.(1,3)\.(1,3)\.(1,3)" 42 127.0.0.1 127.0.0.1 دستور grep آنقدر مفید، غنی از ویژگی ها و استفاده آسان است که وقتی آن را بشناسید، نمی توانید بدون آن کار کنید. ابزار grep یک ابزار جستجو و فیلتر بسیار قدرتمند است. اطلاعات متنی. این مقاله چندین نمونه از کاربرد آن را نشان می دهد که به شما امکان می دهد از قابلیت های آن قدردانی کنید. $ grep needle haystack.txt در نتیجه، grep تمام رخدادهای سوزنی را که در محتویات فایل haystack.txt با آن مواجه می شود، نمایش می دهد. توجه به این نکته ضروری است که در این مورد، grep به دنبال مجموعه ای از شخصیت ها است، نه یک کلمه. به عنوان مثال، رشته هایی که شامل کلمه "نیازی" و سایر کلماتی که حاوی دنباله "سوزن" هستند نمایش داده می شوند. $ grep -w needle haystack.txt لازم نیست جستجو را فقط به یک فایل محدود کنید؛ grep میتواند در میان گروهی از فایلها جستجو کند و نتایج جستجو فایلی را که مطابقت در آن پیدا شده است نشان میدهد. سوئیچ -n همچنین شماره خطی را که مطابقت در آن پیدا شده است اضافه می کند و سوئیچ -r به شما امکان می دهد جستجوی بازگشتی انجام دهید. این هنگام جستجو در میان فایلهای دارای کد منبع برنامه بسیار راحت است. $ grep -rnw function_name /home/www/dev/myprogram/ نام فایل قبل از هر مسابقه ذکر می شود. اگر میخواهید نام فایلها را مخفی کنید، از سوئیچ -h استفاده کنید، برعکس، اگر فقط به نام فایلها نیاز دارید، سوئیچ -l را مشخص کنید. $ grep -wo http://.* channel.log | دم گزینه -o به grep می گوید که به جای کل خط، فقط مطابقت الگو را چاپ کند. با استفاده از pipe، خروجی grep را به دستور tail هدایت می کنیم که به طور پیش فرض 10 خط آخر را خروجی می دهد. $ grep -c "^user_at_(خانه|کار)" channel.log با گزینه -c، grep فقط تعداد موارد منطبق را چاپ می کند، نه خود منطبقات را. رشته جستجو در داخل نقل قول قرار می گیرد زیرا حاوی کاراکترهای خاصی است که می تواند توسط پوسته به عنوان کاراکترهای کنترل شناسایی شود. لطفا توجه داشته باشید که علامت نقل قول در الگوی جستجو گنجانده نشده است. بک اسلش "" برای فرار از کاراکترهای خاص استفاده می شود. $ grep -w "+(5،)" channel.log برای توضیحات بیشتر می توانید به صفحه grep man مراجعه کنید. # grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin خطوطی از فایل /etc/passwd که حاوی ریشه رشته هستند را نمایش می دهد. # grep -n root /etc/passwd 1:root:x:0:0:root:/root:/bin/bash 12:operator:x:11:0:operator:/root:/sbin/nologin علاوه بر این، شماره خطوط حاوی خط جستجو شده نمایش داده می شود. # grep -v bash /etc/passwd | grep -v nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0: shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin :/sbin/halt news:x:9:13:news:/var/spool/news: mailnull:x:47:47::/var/spool/mqueue:/dev/null xfs:x:43:43: سرور قلم X:/etc/X11/fs:/bin/false rpc:x:32:32:Portmapper RPC کاربر:/:/bin/false nscd:x:28:28:NSCD Daemon:/:/bin/false named:x:25:25:Named:/var/named:/bin/false squid:x:23:23::/var/spool/squid:/dev/null ldap:x:55:55:LDAP کاربر: /var/lib/ldap:/bin/false apache:x:48:48:Apache:/var/www:/bin/false بررسی می کند که کدام کاربران از bash استفاده نمی کنند، به استثنای آن دسته از حساب های کاربری که nologin به عنوان پوسته آنها مشخص شده است. # grep -c false /etc/passwd 7 تعداد حساب هایی را که /bin/false به عنوان پوسته آنها وجود دارد، می شمارد. # بازی های grep -i ~/.bash* | تاریخچه grep -v این دستور خطوطی را از تمام فایلهای فهرست اصلی کاربر فعلی که نام آنها با ~/.bash شروع میشود، نمایش میدهد، به استثنای آن دسته از فایلهایی که نام آنها شامل تاریخچه رشته است، به طوری که مطابقتهای موجود در ~/.bash_history که میتوانند رشته مشابهی را در آن مشخص کنند، حذف میشوند. در حروف بزرگ یا کوچک لطفاً توجه داشته باشید که جستجوی کلمه "بازی" انجام شده است، می توانید هر کلمه دیگری را جایگزین کنید. بر خلاف مثال قبلی، اکنون فقط آن خطوطی را نشان خواهیم داد که با خط "ریشه" شروع می شوند: # grep ^root /etc/passwd root:x:0:0:root:/root:/bin/bash اگر بخواهیم ببینیم کدام حسابها اصلاً از پوسته استفاده نکردهاند، به دنبال خطوطی میگردیم که با کاراکتر ":" ختم میشوند: # grep:$ /etc/passwd news:x:9:13:news:/var/spool/news: برای بررسی اینکه آیا متغیر PATH در فایل ~/.bashrc شما صادر شده است، ابتدا خطوط را با "export" انتخاب کنید و سپس به دنبال خطوطی بگردید که با خط "PATH" شروع می شوند. در این حالت MANPATH و دیگران نمایش داده نمی شوند راه های ممکن: # صادرات grep ~/.bashrc | grep "PATH" صادرات PATH="/bin:/usr/lib/mh:/lib:/usr/bin:/usr/local/bin:/usr/ucb:/usr/dbin:$PATH" کلاس های شخصیت عبارت در پرانتز فهرستی از کاراکترهای محصور در کاراکترهای [" و "]" است. با هر کاراکتر مشخص شده در این لیست مطابقت دارد. اگر اولین کاراکتر لیست "^" باشد، با هر کاراکتری که در لیست نیست مطابقت دارد. برای مثال، عبارت منظم "" با هر رقمی مطابقت دارد. در یک عبارت در براکت مربع، می توانید محدوده ای متشکل از دو کاراکتر که با خط فاصله از هم جدا شده اند را مشخص کنید. سپس عبارت با هر تک آهنگی که طبق قوانین مرتب سازی در داخل این دو کاراکتر قرار می گیرد، از جمله این دو کاراکتر، مطابقت دارد. این ترکیب و مجموعه کاراکتر مشخص شده در منطقه را در نظر می گیرد. به عنوان مثال، هنگامی که محلی پیش فرض C است، عبارت "" معادل عبارت "" است. بسیاری از زبانها وجود دارند که مرتبسازی در آنها به ترتیب فرهنگ لغت انجام میشود، و در این زبانها "" به طور کلی معادل "" نیست، که در آن، برای مثال، ممکن است معادل عبارت "" باشد. برای استفاده از تفسیر سنتی عبارت مشخص شده در پرانتز، میتوانید از زبان C با تنظیم آن استفاده کنید. متغیر محیطیمقدار LC_ALL "C". در نهایت، کلاسهای کاراکتری با نامهای خاص وجود دارد که در داخل عبارات در براکت مربع مشخص میشوند. اطلاعات تکمیلیبرای اطلاعات در مورد این عبارات از پیش تعریف شده، به صفحات man یا مستندات دستور grep مراجعه کنید. # grep /etc/group sys:x:3:root,bin,adm tty:x:5: mail:x:12:mail,postfix ftp:x:50: nobody:x:99: فلاپی:x:19: xfs:x:43: nfsnobody:x:65534: postfix:x:89: مثال تمام خطوطی را که شامل کاراکتر "y" یا نویسه "f" هستند را نشان می دهد. استفاده کنید "." برای مطابقت با هر شخصیت اگر می خواهید لیستی از همه آنها را دریافت کنید کلمات انگلیسی، از یک فرهنگ لغت گرفته شده است که شامل پنج کاراکتر است که با "c" شروع می شود و با "h" ختم می شود (مفید برای حل جدول کلمات متقاطع): #گرپ" اگر می خواهید خطوطی را که حاوی یک کاراکتر نقطه هستند به صورت واقعی نمایش دهید، در دستور grep گزینه -F را مشخص کنید. نمادها "< " и «>"به معنای وجود یک خط خالی قبل و بر این اساس بعد از حروف مشخص شده است. به این معنی که کلمات موجود در فایل word باید بر اساس آن نوشته شوند. اگر می خواهید تمام کلمات متن را با توجه به الگوهای مشخص شده بدون در نظر گرفتن خطوط خالی پیدا کنید، نمادها را حذف کنید.< " и «>"، برای جستجوی دقیق تر فقط کلمات، از کلید -w استفاده کنید. برای یافتن کلماتی که می توانند هر تعداد کاراکتر بین "c" و "h" داشته باشند، از یک ستاره (*) استفاده کنید. مثال زیر تمام کلماتی که با "c" شروع می شوند و با "h" ختم می شوند را از فرهنگ لغت سیستم انتخاب می کند: #گرپ" اگر می خواهید کاراکتر ستاره تحت اللفظی را در یک فایل یا جریان خروجی پیدا کنید، از نقل قول های تکی برای پیدا کردن آن استفاده کنید. کاربر در مثال زیر ابتدا سعی می کند بدون استفاده از نقل قول به دنبال "ستاره" در فایل /etc/profile بگردد که نتیجه آن یافت نشدن چیزی است. هنگامی که از نقل قول استفاده می شود، نتیجه خروجی است: # grep * /etc/profile # grep "*" /etc/profile برای i در /etc/profile.d/*.sh ; انجام دادن ظهر بخیر، مهمانان! در مقاله امروز می خواهم به چنین موضوع بزرگی بپردازم عبارات با قاعده. فکر میکنم همه میدانند که مبحث رجکسها (که به عبارات منظم در زبان عامیانه گفته میشود) در محدوده یک پست گسترده است. بنابراین، سعی می کنم به طور خلاصه، اما تا حد امکان واضح، افکار خود را جمع آوری و به شما منتقل کنم. اجازه دهید با این جمله شروع کنم که چندین نوع عبارات منظم وجود دارد: 1. عبارات منظم سنتی(آنها نیز پایه، پایه و عبارات منظم اولیه(BRE))
2. عبارات با قاعده پیشرفته(آن ها هستند عبارات منظم توسعه یافته(ERE))
3. عبارات منظم سازگار با پرل(آن ها هستند عبارات منظم سازگار با Perl(PCRE))
عبارات با قاعده شاملقالب ها، یا بهتر است بگوییم یک قالب تنظیم کنیدجستجو کردن. قالب شاملاز جانب قوانینجستجوهایی که از آن تشکیل شده است شخصیت هاو متا شخصیت ها. قوانین جستجوبا موارد زیر تعیین می شوند عملیات: شمارش |لوله (|)می توان گفت گزینه های معتبر را از هم جدا می کند - منطقی OR. به عنوان مثال، "خاکستری | خاکستری" مطابقت دارد خاکسترییا خاکستری. گروه یا اتحادیه()براکت های گردبرای تعریف محدوده و تقدم عملگرها استفاده می شود. برای مثال، «خاکستری|خاکستری» و «gr(a|e)y» الگوهای متفاوتی هستند، اما هر دو مجموعهای را توصیف میکنند که شامل خاکستریو خاکستری. کمیت ()؟ * +کمیت کنندهبعد از اینکه یک شخصیت یا گروه چند بار تعیین می کند پیشینبیان ممکن است رخ دهد. بیان کلی، تکرار ممکن است باشد از m تا n شامل. بیان کلی m یا بیشتر تکرار می شود. بیان کلی نه بیشتر از n تکرار. صافn تکرار. علامت سوالبه معنای 0 یا 1بارها، همان {0,1} . به عنوان مثال، "colou?r" مطابقت دارد و رنگ، و رنگ. ستارهبه معنای 0، 1 یا هر عددییک بار ( {0,} ). به عنوان مثال، "go*gle" مطابقت دارد جیغ زدن, گوگل, گوگلو غیره. به علاوهبه معنای حداقل 1یک بار ( {1,} ). به عنوان مثال، "go+gle" مطابقت دارد گوگل, گوگلو غیره (اما نه جیغ زدن). نحو دقیق این عبارات منظم به پیاده سازی وابسته است. (یعنی در عبارات منظم اولیهنمادها (و)- با بک اسلش فرار کرد) متا شخصیت هابه عبارت ساده، نمادهایی هستند که با معنای واقعی خود، یعنی نماد مطابقت ندارند. (نقطه) یک نقطه نیست، بلکه یک شخصیت و غیره است. لطفاً با متا کاراکترها و معانی آنها آشنا شوید:
متاکراکترها به ما کمک می کنند تا از مسابقات مختلف استفاده کنیم. اما چگونه میتوانیم یک متاکاراکتر را به عنوان یک کاراکتر منظم، یعنی نماد [ (براکت) به معنای یک کروشه نشان دهیم؟ فقط:
برای ساده کردن تعریف برخی از مجموعه شخصیت ها، آنها به اصطلاح ترکیب شدند. کلاس ها و دسته های شخصیت ها. POSIX اعلان کلاسها و دستههای کاراکتر خاصی را استاندارد کرده است، همانطور که در جدول زیر نشان داده شده است:
در regex چنین چیزی وجود دارد: حرص و طمعمن سعی خواهم کرد تا آنجا که ممکن است آن را واضح توصیف کنم. فرض کنید می خواهیم همه چیز را پیدا کنیم تگ های HTMLدر برخی از متن ها پس از بومی سازی مشکل، می خواهیم مقادیر موجود بین آن را پیدا کنیم< и >، همراه با همین براکت ها. اما می دانیم که تگ ها طول های متفاوتی دارند و خود حداقل 50 تگ وجود دارد. فهرست کردن همه آنها، محصور کردن آنها در متاسامبول ها، کاری بسیار وقت گیر است. اما می دانیم که یک عبارت داریم.* (ستاره نقطه)، که هر تعداد از هر کاراکتر در خط را مشخص می کند. با استفاده از این عبارت سعی می کنیم در متن پیدا کنیم ( بنابراین، نحوه ایجاد RAID سطح 10/50 در یک کنترلر LSI MegaRAID (همچنین مربوط به: Intel SRCU42x، Intel SRCS16): ) همه مقادیر بین< и >. در نتیجه، ENTIRE خط با این عبارت مطابقت خواهد داشت. چرا، زیرا regex حریص است و سعی می کند هر تعداد کاراکتر را بین آنها ثبت کند< и >، به ترتیب کل خط شروع می شود < p>پس...و پایان دادن ...> متعلق به این قانون خواهد بود!امیدوارم این مثال روشن کند که طمع چیست. برای رهایی از این حرص و طمع می توانید مسیر زیر را طی کنید:
من می خواهم به همه موارد بالا اضافه کنم نحو عبارت منظم توسعه یافته: عبارات منظم در POSIX شبیه به نحو سنتی یونیکس هستند، اما با اضافه کردن برخی متاکاراکترها: به علاوهنشان میدهد که قبلینماد یا گروهممکن است تکرار شود یک یا چند بار. برخلاف ستاره، حداقل یک تکرار لازم است. علامت سوالمیکند قبلینماد یا گروه اختیاری است. به عبارت دیگر، در خط مربوطه آن ممکن است غایب یا حضور داشته باشدصاف یکییک بار. نوار عمودیجایگزین های عبارت منظم را جدا می کند. یک کاراکتر دو گزینه را مشخص می کند، اما می تواند تعداد بیشتری از آنها وجود داشته باشد، فقط از نوارهای عمودی بیشتری استفاده کنید. باید به خاطر داشت که این اپراتور از حداکثر استفاده می کند بخش احتمالیاصطلاحات. به همین دلیل، عملگر جایگزین بیشتر در داخل پرانتز استفاده می شود. استفاده از بک اسلش نیز لغو شده است: \(…\) تبدیل به (…) و \(…\) می شود (…). برای پایان دادن به پست، چند نمونه از استفاده از regex را میآورم: $ cat text1 1 سیب 2 گلابی 3 موز $ grep p text1 1 سیب 2 گلابی $ grep "pp*" text1 1 سیب 2 گلابی $ cat text1 | grep "l\|n" 1 سیب 3 موز $ echo -e "در اینجا یک\n* را پیدا کنید" | grep "\*" * در اینجا $ grep "pl\?.*r" text1 # p، در خطوطی که r 2 pear $ grep "a.." وجود دارد text1 # خطوط با a به دنبال حداقل 2 کاراکتر 1 سیب 3 موز $ grep "" text1 # جستجو برای خطوطی که شامل 3 یا p 1 سیب 2 گلابی 3 موز $ echo -e "پیدا کردن یک\n* اینجا\nsomewhere." | grep "[.*]" * اینجا جایی..name]$ echo -e "123\n456\n789\n0" | grep "" 123,456,789 $ sed -e "/\(a.*a\)\|\(p.*p\)/s/a/A/g" text1 # جایگزین a با A در تمام خطوط که بعد از a می آید a یا بعد از p می آید p 1 سیب 2 گلابی 3 bAnAnA *\./ LAST WORD./g" اول. A LAST WORD. این آخرین کلمه است. با احترام، مک سیم! عبارات منظم بسیار هستند ابزار قدرتمندبرای جستجوی متن بر اساس الگو، پردازش و تغییر رشته ها، که می تواند برای حل بسیاری از مشکلات استفاده شود. در اینجا موارد اصلی وجود دارد:
این دور از ذهن است لیست کامل، عبارات منظم به شما امکان می دهد کارهای بیشتری انجام دهید. اما برای کاربران جدید ممکن است خیلی پیچیده به نظر برسند، زیرا از زبان خاصی برای ایجاد آنها استفاده می کنند. اما با توجه به قابلیت های ارائه شده، هر مدیر سیستم باید عبارات منظم لینوکس را بداند و بتواند از آن استفاده کند. در این مقاله، عبارات معمولی bash را برای مبتدیان بررسی می کنیم تا بتوانید تمام ویژگی های این ابزار را درک کنید. دو نوع کاراکتر وجود دارد که می توان در عبارات منظم استفاده کرد:
کاراکترهای رایج حروف، اعداد و علائم نگارشی هستند که هر رشته را تشکیل می دهند. همه متون از حروف تشکیل شده اند و می توانید از آنها در عبارات منظم برای یافتن موقعیت مورد نظر در متن استفاده کنید. فراکاراکترها چیز دیگری هستند، آنها هستند که به عبارات منظم قدرت خود را می دهند. با متاکاراکترها می توانید خیلی بیشتر از جستجوی یک کاراکتر واحد انجام دهید. می توانید ترکیبی از نمادها را جستجو کنید، از تعداد پویا نمادها استفاده کنید و محدوده ها را انتخاب کنید. همه کاراکترهای ویژه را می توان به دو نوع تقسیم کرد: کاراکترهای جایگزین که جایگزین کاراکترهای معمولی می شوند یا عملگرهایی که نشان می دهند چند بار می توان یک کاراکتر را تکرار کرد. سینتکس عبارت منظم به شکل زیر خواهد بود: کاراکتر_ منظم کاراکتر_اپراتور ویژه شخصیت_جایگزین_خاص کاراکتر_اپراتور ویژه
مهم است که توجه داشته باشید که باید قبل از حروف الفبای خاص از یک اسلش استفاده کنید تا نشان دهد که یک کاراکتر خاص بعد از آن قرار می گیرد. عکس آن نیز صادق است، اگر می خواهید از یک کاراکتر خاص استفاده کنید که بدون اسلش به عنوان یک کاراکتر معمولی استفاده می شود، باید یک اسلش اضافه کنید. به عنوان مثال، شما می خواهید خط 1+ 2=3 را در متن پیدا کنید. اگر از این رشته به عنوان یک عبارت منظم استفاده کنید، چیزی پیدا نخواهید کرد، زیرا سیستم علامت مثبت را به عنوان یک کاراکتر خاص تفسیر می کند که نشان می دهد واحد قبلی باید یک یا چند بار تکرار شود. بنابراین باید از آن فرار کرد: 1 \+ 2 = 3. بدون فرار، عبارت منظم ما فقط با رشته 11=3 یا 111=3 و غیره مطابقت دارد. نیازی به خط زدن در مقابل برابر نیست، زیرا کاراکتر خاصی نیست. نمونه هایی از استفاده از عبارات منظماکنون که ما اصول اولیه را پوشش دادیم و میدانید که همه چیز چگونه کار میکند، تنها چیزی که باقی میماند این است که دانشی را که در مورد عبارات منظم لینوکس grep به دست آوردهاید در عمل ادغام کنید. دو کاراکتر ویژه بسیار مفید ^ و $ هستند که شروع و پایان یک خط را نشان می دهند. به عنوان مثال، ما می خواهیم همه کاربرانی را که نام آنها با s شروع می شود در سیستم خود ثبت کنیم. سپس می توانید از یک عبارت منظم استفاده کنید "^s". می توانید از دستور egrep استفاده کنید: egrep "^s" /etc/passwd اگر بخواهیم خطوط را بر اساس آخرین کاراکتر در خط انتخاب کنیم، می توانیم از $ برای این کار استفاده کنیم. به عنوان مثال، بیایید همه کاربران سیستم را انتخاب کنیم، بدون پوسته، رکوردهای مربوط به چنین کاربرانی به false ختم می شوند: egrep "false$" /etc/passwd برای نمایش نام های کاربری که با s یا d شروع می شوند، از این عبارت استفاده کنید: egrep "^" /etc/passwd همین نتیجه را می توان با استفاده از نماد "|" به دست آورد. گزینه اول برای محدوده ها مناسب تر است و گزینه دوم بیشتر برای معمولی یا/یا استفاده می شود: egrep "^" /etc/passwd حالا بیایید همه کاربرانی که نامشان سه کاراکتر نباشد را انتخاب کنیم. نام کاربری با دو نقطه به پایان می رسد. می توان گفت که می تواند حاوی هر کاراکتر الفبایی باشد که باید سه بار قبل از دو نقطه تکرار شود: egrep "^\w(3):" /etc/passwd نتیجه گیریدر این مقاله به عبارات منظم لینوکس پرداختیم، اما این فقط اصول اولیه بود. اگر کمی عمیق تر بگردید، متوجه خواهید شد که با این ابزار می توانید کارهای بسیار جالب تری انجام دهید. وقت گذاشتن برای تسلط بر عبارات منظم قطعا ارزشش را دارد. برای نتیجه گیری، یک سخنرانی از Yandex در مورد عبارات منظم:
|
خواندن: |
---|
جدید
- بایوس: از دیسک بوت شود
- نحوه بوت کردن از دی وی دی یا درایو فلش "نصب" - راه اندازی بایوس در تصاویر
- چگونه زمان بندی رم را به درستی تنظیم کنیم؟
- نصب Navitel بر روی ناوبر و کامپیوتر
- رمز عبور سرور Minecraft را از طریق حساب شخصی خود و در مشتری تغییر دهید
- کابل اسپیکر چیست
- استفاده از رایانه به عنوان تلفن
- نحوه استفاده از گوشی هوشمند به عنوان مودم برای لپ تاپ
- نحوه اتصال تلویزیون دوم به گیرنده یا ستاپ باکس تلویزیون دیجیتال
- بهترین نت بوک ها با توجه به نظرات مشتریان