ºìÁªLinuxÃÅ»§
Linux°ïÖú

Linux GrepÃüÁîʹÓýéÉÜ

·¢²¼Ê±¼ä:2007-03-15 00:22:00À´Ô´:ºìÁª×÷Õß:Assurance
¡¡¡¡1. grep¼ò½é

¡¡¡¡grep £¨global search regular expression(RE) and print out the line,È«ÃæËÑË÷ÕýÔò±í´ïʽ²¢°ÑÐдòÓ¡³öÀ´£©ÊÇÒ»ÖÖÇ¿´óµÄÎı¾ËÑË÷¹¤¾ß£¬ËüÄÜʹÓÃÕýÔò±í´ïʽËÑË÷Îı¾£¬²¢°ÑÆ¥ÅäµÄÐдòÓ¡³öÀ´¡£UnixµÄgrep¼Ò×å°üÀ¨grep¡¢egrepºÍfgrep¡£egrepºÍfgrepµÄÃüÁîÖ»¸úgrepÓкÜС²»Í¬¡£egrepÊÇgrepµÄÀ©Õ¹£¬Ö§³Ö¸ü¶àµÄreÔª×Ö·û£¬ fgrep¾ÍÊÇfixed grep»òfast grep£¬ËüÃǰÑËùÓеÄ×Öĸ¶¼¿´×÷µ¥´Ê£¬Ò²¾ÍÊÇ˵£¬ÕýÔò±í´ïʽÖеÄÔª×Ö·û±íʾ»ØÆä×ÔÉíµÄ×ÖÃæÒâÒ壬²»ÔÙÌØÊâ¡£linuxʹÓÃGNU°æ±¾µÄgrep¡£Ëü¹¦ÄܸüÇ¿£¬¿ÉÒÔͨ¹ý-G¡¢-E¡¢-FÃüÁîÐÐÑ¡ÏîÀ´Ê¹ÓÃegrepºÍfgrepµÄ¹¦ÄÜ¡£

¡¡¡¡grepµÄ¹¤×÷·½Ê½ÊÇÕâÑùµÄ£¬ËüÔÚÒ»¸ö»ò¶à¸öÎļþÖÐËÑË÷×Ö·û´®Ä£°å¡£Èç¹ûÄ£°å°üÀ¨¿Õ¸ñ£¬Ôò±ØÐë±»ÒýÓã¬Ä£°åºóµÄËùÓÐ×Ö·û´®±»¿´×÷ÎļþÃû¡£ËÑË÷µÄ½á¹û±»Ë͵½ÆÁÄ»£¬²»Ó°ÏìÔ­ÎļþÄÚÈÝ¡£

¡¡¡¡grep¿ÉÓÃÓÚshell½Å±¾£¬ÒòΪgrepͨ¹ý·µ»ØÒ»¸ö״ֵ̬À´ËµÃ÷ËÑË÷µÄ״̬£¬Èç¹ûÄ£°åËÑË÷³É¹¦£¬Ôò·µ»Ø0£¬Èç¹ûËÑË÷²»³É¹¦£¬Ôò·µ»Ø1£¬Èç¹ûËÑË÷µÄÎļþ²»´æÔÚ£¬Ôò·µ»Ø2¡£ÎÒÃÇÀûÓÃÕâЩ·µ»ØÖµ¾Í¿É½øÐÐһЩ×Ô¶¯»¯µÄÎı¾´¦Àí¹¤×÷¡£

¡¡¡¡2. grepÕýÔò±í´ïʽԪ×Ö·û¼¯£¨»ù±¾¼¯£©

¡¡¡¡^

¡¡¡¡Ãª¶¨ÐеĿªÊ¼ È磺'^grep'Æ¥ÅäËùÓÐÒÔgrep¿ªÍ·µÄÐС£

¡¡¡¡$

¡¡¡¡Ãª¶¨ÐеĽáÊø È磺'grep$'Æ¥ÅäËùÓÐÒÔgrep½áβµÄÐС£

¡¡¡¡Æ¥ÅäÒ»¸ö·Ç»»ÐзûµÄ×Ö·û È磺'gr.p'Æ¥Åägrºó½ÓÒ»¸öÈÎÒâ×Ö·û£¬È»ºóÊÇp¡£

¡¡¡¡*

¡¡¡¡Æ¥ÅäÁã¸ö»ò¶à¸öÏÈǰ×Ö·û È磺'*grep'Æ¥ÅäËùÓÐÒ»¸ö»ò¶à¸ö¿Õ¸ñºó½ô¸úgrepµÄÐС£ .*Ò»ÆðÓôú±íÈÎÒâ×Ö·û¡£

¡¡¡¡[]

¡¡¡¡Æ¥ÅäÒ»¸öÖ¸¶¨·¶Î§ÄÚµÄ×Ö·û£¬Èç'[Gg]rep'Æ¥ÅäGrepºÍgrep¡£

¡¡¡¡[^]

¡¡¡¡Æ¥ÅäÒ»¸ö²»ÔÚÖ¸¶¨·¶Î§ÄÚµÄ×Ö·û£¬È磺'[^A-FH-Z]rep'Æ¥Åä²»°üº¬A-RºÍT-ZµÄÒ»¸ö×Öĸ¿ªÍ·£¬½ô¸úrepµÄÐС£

¡¡¡¡\(..\)

¡¡¡¡±ê¼ÇÆ¥Åä×Ö·û£¬Èç'\(love\)'£¬love±»±ê¼ÇΪ1¡£

¡¡¡¡\<

¡¡¡¡Ãª¶¨µ¥´ÊµÄ¿ªÊ¼£¬Èç:'\\>

¡¡¡¡Ãª¶¨µ¥´ÊµÄ½áÊø£¬Èç'grep\>'Æ¥Åä°üº¬ÒÔgrep½áβµÄµ¥´ÊµÄÐС£

¡¡¡¡x\{m\}

¡¡¡¡Öظ´×Ö·ûx£¬m´Î£¬È磺'0\{5\}'Æ¥Åä°üº¬5¸öoµÄÐС£

¡¡¡¡x\{m,\}

¡¡¡¡Öظ´×Ö·ûx,ÖÁÉÙm´Î£¬È磺'o\{5,\}'Æ¥ÅäÖÁÉÙÓÐ5¸öoµÄÐС£

¡¡¡¡x\{m,n\}

¡¡¡¡Öظ´×Ö·ûx£¬ÖÁÉÙm´Î£¬²»¶àÓÚn´Î£¬È磺'o\{5,10\}'Æ¥Åä5--10¸öoµÄÐС£

¡¡¡¡\w

¡¡¡¡Æ¥ÅäÎÄ×ÖºÍÊý×Ö×Ö·û£¬Ò²¾ÍÊÇ[A-Za-z0-9]£¬È磺'G\w*p'Æ¥ÅäÒÔGºó¸úÁã¸ö»ò¶à¸öÎÄ×Ö»òÊý×Ö×Ö·û£¬È»ºóÊÇp¡£

¡¡¡¡\W

¡¡¡¡\wµÄ·´ÖÃÐÎʽ£¬Æ¥ÅäÒ»¸ö»ò¶à¸ö·Çµ¥´Ê×Ö·û£¬ÈçµãºÅ¾äºÅµÈ¡£

¡¡¡¡\b

¡¡¡¡µ¥´ÊËø¶¨·û£¬Èç: '\bgrepb\'ֻƥÅägrep¡£

¡¡¡¡3. ÓÃÓÚegrepºÍ grep -EµÄÔª×Ö·ûÀ©Õ¹¼¯

¡¡¡¡+

¡¡¡¡Æ¥ÅäÒ»¸ö»ò¶à¸öÏÈǰµÄ×Ö·û¡£È磺'[a-z]+able'£¬Æ¥ÅäÒ»¸ö»ò¶à¸öСд×Öĸºó¸úableµÄ´®£¬Èçloveable,enable,disableµÈ¡£

¡¡¡¡?

¡¡¡¡Æ¥ÅäÁã¸ö»ò¶à¸öÏÈǰµÄ×Ö·û¡£È磺'gr?p'Æ¥Åägrºó¸úÒ»¸ö»òûÓÐ×Ö·û£¬È»ºóÊÇpµÄÐС£

¡¡¡¡a|b|c

¡¡¡¡Æ¥Åäa»òb»òc¡£È磺grep|sedÆ¥Åägrep»òsed

¡¡¡¡()

¡¡¡¡·Ö×é·ûºÅ£¬È磺love(able|rs)ov+Æ¥Åäloveable»òlovers£¬Æ¥ÅäÒ»¸ö»ò¶à¸öov¡£

¡¡¡¡x{m},x{m,},x{m,n}

¡¡¡¡×÷ÓÃͬx\{m\},x\{m,\},x\{m,n\}

¡¡¡¡4. POSIX×Ö·ûÀà

¡¡¡¡ÎªÁËÔÚ²»Í¬¹ú¼ÒµÄ×Ö·û±àÂëÖб£³ÖÒ»ÖÁ£¬POSIX(The Portable Operating System Interface)Ôö¼ÓÁËÌØÊâµÄ×Ö·ûÀ࣬Èç[:alnum:]ÊÇA-Za-z0-9µÄÁíÒ»¸öд·¨¡£Òª°ÑËüÃǷŵ½[]ºÅÄÚ²ÅÄܳÉΪÕýÔò±í´ïʽ£¬Èç[A- Za-z0-9]»ò[[:alnum:]]¡£ÔÚlinuxϵÄgrep³ýfgrepÍ⣬¶¼Ö§³ÖPOSIXµÄ×Ö·ûÀà¡£

¡¡¡¡[:alnum:]

¡¡¡¡ÎÄ×ÖÊý×Ö×Ö·û

¡¡¡¡[:alpha:]

¡¡¡¡ÎÄ×Ö×Ö·û

¡¡¡¡[:digit:]

¡¡¡¡Êý×Ö×Ö·û

¡¡¡¡[:graph:]

¡¡¡¡·Ç¿Õ×Ö·û£¨·Ç¿Õ¸ñ¡¢¿ØÖÆ×Ö·û£©

¡¡¡¡[:lower:]

¡¡¡¡Ð¡Ð´×Ö·û

¡¡¡¡[:cntrl:]

¡¡¡¡¿ØÖÆ×Ö·û

¡¡¡¡[:print:]

¡¡¡¡·Ç¿Õ×Ö·û£¨°üÀ¨¿Õ¸ñ£©

¡¡¡¡[:punct:]

¡¡¡¡±êµã·ûºÅ

¡¡¡¡[:space:]

¡¡¡¡ËùÓпհ××Ö·û£¨ÐÂÐУ¬¿Õ¸ñ£¬ÖƱí·û£©

¡¡¡¡[:upper:]

¡¡¡¡´óд×Ö·û

¡¡¡¡[:xdigit:]

¡¡¡¡Ê®Áù½øÖÆÊý×Ö£¨0-9£¬a-f£¬A-F£©

¡¡¡¡5. GrepÃüÁîÑ¡Ïî

¡¡¡¡-?

¡¡¡¡Í¬Ê±ÏÔʾƥÅäÐÐÉÏϵģ¿ÐУ¬È磺grep -2 pattern filenameͬʱÏÔʾƥÅäÐеÄÉÏÏÂ2ÐС£

¡¡¡¡-b£¬--byte-offset

¡¡¡¡´òÓ¡Æ¥ÅäÐÐÇ°Ãæ´òÓ¡¸ÃÐÐËùÔڵĿéºÅÂë¡£

¡¡¡¡-c,--count

¡¡¡¡Ö»´òÓ¡Æ¥ÅäµÄÐÐÊý£¬²»ÏÔʾƥÅäµÄÄÚÈÝ¡£

¡¡¡¡-f File£¬--file=File

¡¡¡¡´ÓÎļþÖÐÌáȡģ°å¡£¿ÕÎļþÖаüº¬0¸öÄ£°å£¬ËùÒÔʲô¶¼²»Æ¥Åä¡£

¡¡¡¡-h£¬--no-filename

¡¡¡¡µ±ËÑË÷¶à¸öÎļþʱ£¬²»ÏÔʾƥÅäÎļþÃûǰ׺¡£

¡¡¡¡-i£¬--ignore-case

¡¡¡¡ºöÂÔ´óСд²î±ð¡£

¡¡¡¡-q£¬--quiet

¡¡¡¡È¡ÏûÏÔʾ£¬Ö»·µ»ØÍ˳ö״̬¡£0Ôò±íʾÕÒµ½ÁËÆ¥ÅäµÄÐС£

¡¡¡¡-l£¬--files-with-matches

¡¡¡¡´òÓ¡Æ¥ÅäÄ£°åµÄÎļþÇåµ¥¡£

¡¡¡¡-L£¬--files-without-match

¡¡¡¡´òÓ¡²»Æ¥ÅäÄ£°åµÄÎļþÇåµ¥¡£

¡¡¡¡-n£¬--line-number

¡¡¡¡ÔÚÆ¥ÅäµÄÐÐÇ°Ãæ´òÓ¡Ðкš£

¡¡¡¡-s£¬--silent

¡¡¡¡²»ÏÔʾ¹ØÓÚ²»´æÔÚ»òÕßÎÞ·¨¶ÁÈ¡ÎļþµÄ´íÎóÐÅÏ¢¡£

¡¡¡¡-v£¬--revert-match

¡¡¡¡·´¼ìË÷£¬Ö»ÏÔʾ²»Æ¥ÅäµÄÐС£

¡¡¡¡-w£¬--word-regexp

¡¡¡¡Èç¹û±»\<ºÍ\>ÒýÓ㬾Ͱѱí´ïʽ×öΪһ¸öµ¥´ÊËÑË÷¡£

¡¡¡¡-V£¬--version

¡¡¡¡ÏÔʾÈí¼þ°æ±¾ÐÅÏ¢¡£

¡¡¡¡6. ʵÀý

¡¡¡¡ÒªÓúÃgrepÕâ¸ö¹¤¾ß£¬Æäʵ¾ÍÊÇҪдºÃÕýÔò±í´ïʽ£¬ËùÒÔÕâÀï²»¶ÔgrepµÄËùÓй¦ÄܽøÐÐʵÀý½²½â£¬Ö»Áм¸¸öÀý×Ó£¬½²½âÒ»¸öÕýÔò±í´ïʽµÄд·¨¡£

¡¡¡¡$ ls -l | grep '^a'

¡¡¡¡Í¨¹ý¹ÜµÀ¹ýÂËls -lÊä³öµÄÄÚÈÝ£¬Ö»ÏÔʾÒÔa¿ªÍ·µÄÐС£

¡¡¡¡$ grep 'test' d*

¡¡¡¡ÏÔʾËùÓÐÒÔd¿ªÍ·µÄÎļþÖаüº¬testµÄÐС£

¡¡¡¡$ grep 'test' aa bb cc

¡¡¡¡ÏÔʾÔÚaa£¬bb£¬ccÎļþÖÐÆ¥ÅätestµÄÐС£

¡¡¡¡$ grep '[a-z]\{5\}' aa

¡¡¡¡ÏÔʾËùÓаüº¬Ã¿¸ö×Ö·û´®ÖÁÉÙÓÐ5¸öÁ¬ÐøÐ¡Ð´×Ö·ûµÄ×Ö·û´®µÄÐС£

¡¡¡¡$ grep 'w\(es\)t.*\1' aa

¡¡¡¡Èç¹ûwest±»Æ¥Å䣬Ôòes¾Í±»´æ´¢µ½ÄÚ´æÖУ¬²¢±ê¼ÇΪ1£¬È»ºóËÑË÷ÈÎÒâ¸ö×Ö·û£¨.*£©£¬ÕâЩ×Ö·ûºóÃæ½ô¸ú×ÅÁíÍâÒ»¸öes£¨\1£©£¬ÕÒµ½¾ÍÏÔʾ¸ÃÐС£Èç¹ûÓÃegrep»ògrep -E£¬¾Í²»ÓÃ"\"ºÅ½øÐÐתÒ壬ֱ½Óд³É'w(es)t.*\1'¾Í¿ÉÒÔÁË¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ