ÎÞÂÛÄãÊÇϵͳ¹ÜÀíÔ±¡¢¿ª·¢ÈËÔ±£¬»¹ÊÇÊý¾Ý·ÖÎöʦ£¬ÕÆÎÕÒ»ÖÖ¸ßЧµÄÎı¾´¦Àí¹¤¾ß¶¼ÖÁ¹ØÖØÒª
¶øLinuxϵͳϵĻù´¡ÕýÔò±í´ïʽ£¨Regular Expressions£¬¼ò³ÆRegex£©ÕýÊÇÕâÑùÒ»°ÑÀûÆ÷£¬ËüÄܹ»°ïÖúÄãѸËÙ¶¨Î»¡¢É¸Ñ¡ºÍÐÞ¸ÄÎı¾ÐÅÏ¢£¬ÊÇÎı¾´¦ÀíÁìÓòµÄÒ»°ÑÈðÊ¿¾üµ¶
±¾ÎĽ«´øÄãÉîÈëÁ˽âLinux»ù´¡ÕýÔò±í´ïʽµÄºËÐĸÅÄî¡¢Óï·¨¹æÔòÒÔ¼°Êµ¼ÊÓ¦Óã¬ÈÃÄãÔÚÎı¾´¦ÀíµÄº£ÑóÖÐ³Ë·çÆÆÀË
Ò»¡¢ÕýÔò±í´ïʽ¼ò½é ÕýÔò±í´ïʽÊÇÒ»ÖÖÎı¾Ä£Ê½ÃèÊöµÄ·½·¨£¬Í¨¹ýÌØ¶¨µÄ×Ö·û×éºÏÀ´Æ¥Åä×Ö·û´®ÖеÄÌØ¶¨ÄÚÈÝ
ËüÆðÔ´ÓÚ20ÊÀ¼Í50Äê´úµÄ¿ÆÑ§¼ÒºÍÊýѧ¼ÒÃǶÔÐÎʽÓïÑÔµÄÑо¿£¬ºóÀ´±»¹ã·ºÓ¦ÓÃÓÚ¼ÆËã»ú¿ÆÑ§ÁìÓò£¬ÌرðÊÇÔÚÎı¾ËÑË÷¡¢Êý¾ÝÇåÏ´¡¢ÈÕÖ¾·ÖÎöµÈ³¡¾°ÖÐ
LinuxÖеÄÕýÔò±í´ïʽÖ÷Ҫͨ¹ý`grep`¡¢`sed`¡¢`awk`µÈ¹¤¾ßʵÏ֯书ÄÜ
ÕâЩ¹¤¾ß½áºÏÕýÔò±í´ïʽµÄÇ¿´óÄÜÁ¦£¬Ê¹µÃ´¦Àí´ó¹æÄ£Îı¾Êý¾Ý±äµÃ¼È¼òµ¥ÓÖ¸ßЧ
¶þ¡¢»ù´¡ÕýÔò±í´ïʽÓï·¨ ÔÚÉîÈë֮ǰ£¬ÈÃÎÒÃÇÏÈÁ˽âһЩ»ù´¡ÕýÔò±í´ïʽµÄºËÐÄ·ûºÅºÍÓï·¨¹æÔò£º 1.ÆÕͨ×Ö·û£ºÖ±½ÓÆ¥ÅäÎı¾ÖеÄ×Ö·û£¬ÈçaÆ¥Åä×Öĸ`a`
2.Ôª×Ö·û£º¾ßÓÐÌØÊ⺬ÒåµÄ×Ö·û£¬ÓÃÓÚ±íʾ×Ö·ûÀà¡¢ÊýÁ¿ÏÞ¶¨¡¢Î»ÖùØÏµµÈ
-.£ºÆ¥ÅäÈÎÒâµ¥¸ö×Ö·û£¨»»Ðзû³ýÍ⣩
-£ºÆ¥Åäǰһ¸ö×Ö·û0´Î»ò¶à´Î
-`^`£ºÆ¥ÅäÐеĿªÊ¼
-$£ºÆ¥ÅäÐеĽáÊø
-`¡¾¡¿`£º×Ö·û¼¯ºÏ£¬Æ¥Åä·½À¨ºÅÄÚµÄÈÎÒâ×Ö·û£¬Èç`¡¾abc¡¿`Æ¥Åä`a`¡¢`b`»ò`c`
-|£ºÂß¼»ò£¬Æ¥Åä×ó²à»òÓÒ²àµÄ±í´ïʽ£¬µ«Ðè×¢Ò⣬ÔÚ»ù±¾ÕýÔò±í´ïʽÖУ¬|Ðèͨ¹ý`egrep`»ò`grep -E`ÆôÓÃÀ©Õ¹Ä£Ê½
3.×Ö·ûÀࣺÓÃÓÚÆ¥ÅäijһÀà×Ö·û
-`¡¾a-z¡¿`£ºÆ¥ÅäÈÎÒâСд×Öĸ
-`¡¾A-Z¡¿`£ºÆ¥ÅäÈÎÒâ´óд×Öĸ
-`¡¾0-9¡¿`£ºÆ¥ÅäÈÎÒâÊý×Ö
-`¡¾¡¾:digit:¡¿¡¿`¡¢`¡¾¡¾:alpha:¡¿¡¿`¡¢`¡¾¡¾:alnum:¡¿¡¿`µÈPOSIX×Ö·ûÀ࣬·Ö±ðÆ¥ÅäÊý×Ö¡¢×Öĸ¡¢×ÖĸºÍÊý×ÖµÄ×éºÏ
4.ÊýÁ¿ÏÞ¶¨£º -`?`£ºÆ¥Åäǰһ¸ö×Ö·û0´Î»ò1´Î
-`{n}`£ºÆ¥Åäǰһ¸ö×Ö·ûÇ¡ºÃn´Î
-`{n,}`£ºÆ¥Åäǰһ¸ö×Ö·ûÖÁÉÙn´Î
-`{n,m}`£ºÆ¥Åäǰһ¸ö×Ö·ûnµ½m´Î
Èý¡¢»ù´¡ÕýÔò±í´ïʽµÄÓ¦ÓÃʵÀý ÕÆÎÕÁË»ù´¡ÕýÔò±í´ïʽµÄÓï·¨ºó£¬ÈÃÎÒÃÇͨ¹ý¼¸¸öʵ¼ÊÀý×ÓÀ´¼ÓÉîÀí½â
1.²éÕÒÌØ¶¨Ä£Ê½µÄÐÐ ¼ÙÉèÄãÓÐÒ»¸ö°üº¬Óû§ÐÅÏ¢µÄÎļþ`users.txt`£¬ÄÚÈÝÈçÏ£º alice:x:1000:1000:Alice,,,:/home/alice:/bin/bash bob:x:1001:1001:Bob,,,:/home/bob:/bin/bash charlie:x:1002:1002:Charlie,,,:/home/charlie:/sbin/nologin Èç¹ûÄãÏë²éÕÒËùÓÐʹÓÃ`/bin/bash`×÷ΪµÇ¼ShellµÄÓû§£¬¿ÉÒÔʹÓÃ`grep`ÃüÁ bash grep /bin/bash users.txt Õ⽫Êä³ö£º alice:x:1000:1000:Alice,,,:/home/alice:/bin/bash bob:x:1001:1001:Bob,,,:/home/bob:/bin/bash 2.Æ¥ÅäÒÔÌØ¶¨×Ö·û¿ªÍ·µÄÐÐ ¼ÙÉèÄãÏë²éÕÒËùÓÐÒÔ`b`¿ªÍ·µÄÓû§Ãû£¬¿ÉÒÔʹÓÃ`^`·ûºÅ£º bash grep ^b users.txt Õ⽫Êä³ö£º bob:x:1001:1001:Bob,,,:/home/bob:/bin/bash 3.Æ¥Åä°üº¬Ìض¨×Ö·û¼¯µÄÐÐ Èç¹ûÄãÏë²éÕÒËùÓÐÓû§ÃûÖаüº¬Êý×ÖµÄÓû§£¨ËäÈ»ÕâÔÚʵ¼ÊÓû§¹ÜÀíÖв»³£¼û£¬µ«½öΪÑÝʾĿµÄ£©£¬¿ÉÒÔʹÓÃ`¡¾¡¿`ºÍ×Ö·ûÀࣺ bash grep¡¾0-9¡¿ users.txt ÓÉÓÚËùÓÐÓû§Ãûºó¶¼¸ú×ÅUID£¨Óû§ID£©£¬Õâ¸öÃüÁƥÅäËùÓÐÐÐ
4.Ìæ»»Îı¾ `sed`ÃüÁîÊÇÁíÒ»¸öÇ¿´óµÄÎı¾´¦Àí¹¤¾ß£¬Ëü²»½ö¿ÉÒÔËÑË÷Îı¾£¬»¹¿ÉÒÔ½øÐÐÌæ»»
ÀýÈ磬ÄãÏ뽫ËùÓÐÓû§µÄShell´Ó`/bin/bash`¸ÄΪ`/bin/zsh`£¬¿ÉÒÔʹÓÃÒÔÏÂÃüÁ bash sed -i s//bin/bash//bin/zsh/g users.txt ×¢Ò⣬ÔÚ`sed`ÖУ¬`s`±íÊ¾Ìæ»»²Ù×÷£¬`//bin/bash//bin/zsh/`ÊÇ¡°²éÕÒÕâ¸ö£¬Ì滻ΪÄǸö¡±µÄ¸ñʽ£¬`g`±êÖ¾±íʾȫ¾ÖÌæ»»£¨¼´Ã¿ÐÐÖÐËùÓÐÆ¥ÅäÏî¶¼±»Ìæ»»£©
5.¸´ÔÓģʽƥÅä ¶ÔÓÚ¸ü¸´Ôӵį¥ÅäÐèÇ󣬿ÉÒÔ½áºÏʹÓöà¸öÔª×Ö·ûºÍ×Ö·ûÀà
ÀýÈ磬²éÕÒËùÓÐÓû§Ãû³¤¶ÈΪ5¸ö×Ö·ûµÄÓû§£º bash grep ^.....: users.txt ÕâÀïʹÓÃÁË.À´Æ¥ÅäÈÎÒâ×Ö·û£¬`{5}`À´ÏÞ¶¨ÊýÁ¿Îª5£¬`^`±íʾÐеĿªÊ¼£¬`:`ÊÇÓû§ÃûºÍºóÐø×Ö¶ÎÖ®¼äµÄ·Ö¸ô·û
ËÄ¡¢ÕýÔò±í´ïʽµÄ¸ßЧʹÓü¼ÇÉ 1.²âÊÔÓëµ÷ÊÔ£ºÔÚʵ¼ÊÓ¦ÓÃÕýÔò±í´ïʽ֮ǰ£¬Ê¹ÓÃÔÚÏßÕýÔò±í´ïʽ²âÊÔ¹¤¾ß»òLinuxϵÄ`echo`ºÍ`grep`×éºÏ½øÐÐС·¶Î§²âÊÔ£¬¿ÉÒÔÓÐЧ±ÜÃâÎó²Ù×÷
2.×éºÏʹÓù¤¾ß£ºgrep¡¢sed¡¢awkµÈ¹¤¾ß¸÷ÓÐǧÇ¸ù¾Ýʵ¼ÊÇé¿öÑ¡ÔñºÏÊʵŤ¾ß»ò×éºÏʹÓ㬿ÉÒÔ´ó´óÌá¸ß¹¤×÷ЧÂÊ
3.ѧϰÀ©Õ¹ÕýÔò±í´ïʽ£º»ù´¡ÕýÔò±í´ïʽÒѾ·Ç³£Ç¿´ó£¬µ«À©Õ¹ÕýÔò±í´ïʽ£¨ERE£©Í¨¹ýÒýÈë¸ü¶à±ã½ÝµÄÔª×Ö·û£¨Èç`+`¡¢`?`¡¢|µÈÎÞÐèתÒ壩½øÒ»²½ÔöÇ¿Á˱í´ïÄÜÁ¦
ÊìϤERE¿ÉÒÔÈÃÄãÔÚ´¦Àí¸´ÔÓÎı¾Ê±¸ü¼ÓÓÎÈÐÓÐÓà
4.ÎĵµÓëÉçÇø×ÊÔ´£ºLinuxÎĵµ¡¢ÕýÔò±í´ïʽÊÖ²áÒÔ¼°ÔÚÏßÉçÇøÊÇѧϰºÍ½â¾öÎÊÌâµÄ±¦¹ó×ÊÔ´
Óöµ½À§ÄÑʱ£¬²»·Á²éÔĹٷ½Îĵµ»òÏòÉçÇøÇóÖú
½áÓï ÕÆÎÕLinux»ù´¡ÕýÔò±í´ïʽ£¬Òâζ×ÅÄãÓµÓÐÁËÒ»°ÑÇ¿´óµÄÎı¾´¦ÀíÔ¿³×
ÎÞÂÛÊǼòµ¥µÄÎı¾ËÑË÷£¬»¹ÊǸ´ÔÓµÄÈÕÖ¾·ÖÎö£¬ÕýÔò±í´ïʽ¶¼ÄÜÌṩ¸ßЧ¡¢Áé»îµÄ½â¾ö·½°¸
ͨ¹ý²»¶Ïʵ¼ùºÍÉîÈëѧϰ£¬Ä㽫Äܹ»½âËø¸ü¶à¸ß¼¶¹¦ÄÜ£¬ÈÃÎı¾´¦Àí±äµÃµÃÐÄÓ¦ÊÖ
ÔÚÕâ¸öÐÅÏ¢±¬Õ¨µÄʱ´ú£¬ÌáÉýÊý¾Ý´¦ÀíÄÜÁ¦£¬¾ÍÊÇÌáÉý¸öÈ˾ºÕùÁ¦
ÏÖÔÚ£¬¾ÍÈÃÎÒÃÇÒ»Æð̤ÉÏÕýÔò±í´ïʽµÄѧϰ֮Âã¬Ì½Ë÷Îı¾´¦ÀíµÄÎÞÏÞ¿ÉÄܰɣ¡