ÎÞÂÛÊÇϵͳ¹ÜÀíÔ±»¹ÊÇÊý¾Ý·ÖÎöʦ£¬¶¼ÐèÒª¶ÔÎı¾Îļþ½øÐиßЧ¡¢¾«×¼µÄ´¦Àí
¶øÔÚÖÚ¶àÎı¾´¦Àí¹¤¾ßÖУ¬`grep`ºÍ `awk` ÎÞÒÉÊÇÁ½´óÀûÆ÷
ͨ¹ýËüÃǵÄ×éºÏʹÓ㬿ÉÒÔ¼«´óµØÌá¸ßÎı¾´¦ÀíµÄЧÂʺÍ׼ȷÐÔ
±¾ÎĽ«Ïêϸ½éÉÜÕâÁ½¸ö¹¤¾ßµÄ¹¦ÄÜ¡¢Ó÷¨ÒÔ¼°×éºÏʹÓõÄÇ¿´óЧ¹û
Ò»¡¢grep£ºÇ¿´óµÄÎı¾ËÑË÷¹¤¾ß `grep`£¨Global Regular Expression Print£©ÊÇÒ»ÖÖÇ¿´óµÄÎı¾ËÑË÷¹¤¾ß£¬ËüʹÓÃÕýÔò±í´ïʽÀ´ËÑË÷Îı¾£¬²¢Êä³öÆ¥ÅäµÄÐÐ
`grep`¹ã·ºÓ¦ÓÃÓÚÈÕÖ¾·ÖÎö¡¢´úÂëÉó²éµÈ³¡¾°£¬Æä¸ßЧÐÔºÍÁé»îÐÔʹÆä³ÉΪ Linux ϵͳÖв»¿É»òȱµÄÎı¾´¦Àí¹¤¾ß
1. »ù±¾Ó÷¨ `grep` µÄ»ù±¾Ó÷¨·Ç³£¼òµ¥£¬Ö»ÐèÒªÖ¸¶¨ÒªËÑË÷µÄģʽºÍÎļþÃû¼´¿É
ÀýÈ磺 grep pattern filename Õ⽫»áËÑË÷ `filename` ÎļþÖаüº¬ pattern µÄËùÓÐÐУ¬²¢Êä³öµ½ÖÕ¶Ë
2. ³£ÓÃÑ¡Ïî - `-i`£ººöÂÔ´óСд
ÀýÈç `grep -i patternfilename` »áºöÂÔ´óСд½øÐÐÆ¥Åä
- `-v`£º·´×ªÆ¥Å䣬Êä³ö²»°üº¬Ö¸¶¨Ä£Ê½µÄÐÐ
- `-r`»ò `-R`£ºµÝ¹éËÑË÷Ŀ¼ÖеÄÎļþ
- `-n`£ºÏÔʾƥÅäÐеÄÐкÅ
- `-l`£ºÖ»ÏÔʾ°üº¬Æ¥ÅäģʽµÄÎļþÃû
- `-w`£ºÖ»Æ¥ÅäÕû¸öµ¥´Ê
3. ¸ß¼¶Ó÷¨ `grep`»¹¿ÉÒÔ½áºÏÕýÔò±í´ïʽ½øÐи´ÔÓµÄËÑË÷
ÀýÈ磬ʹÓà `^` Æ¥ÅäÐÐÊ×£¬Ê¹ÓÃ$ Æ¥ÅäÐÐβ£¬Ê¹ÓÃ. Æ¥ÅäÈÎÒâµ¥¸ö×Ö·û£¬Ê¹Óà `` Æ¥Åäǰһ¸ö×Ö·ûµÄÁã´Î»ò¶à´Î³öÏÖµÈ
grep ^pattern filename Æ¥ÅäÒÔ pattern ¿ªÍ·µÄÐÐ grep pattern$ filename Æ¥ÅäÒÔ pattern ½áβµÄÐÐ grep p.ttern filename Æ¥Åä p ºóÃæ¸úÈÎÒâµ¥¸ö×Ö·û£¬ÔÙ¸ú ttern µÄÐÐ grep patern filename # Æ¥Åä p ºóÃæ¸úÈÎÒâÊýÁ¿µÄ a£¬ÔÙ¸ú tern µÄÐÐ ¶þ¡¢awk£ºÇ¿´óµÄÎı¾´¦Àí¹¤¾ß `awk`ÊÇÒ»ÖÖ±à³ÌÓïÑÔ£¬Ò²ÊÇÒ»ÖÖÇ¿´óµÄÎı¾´¦Àí¹¤¾ß
ËüÌØ±ðÊÊÓÃÓÚ¶ÔÎı¾ÎļþÖеÄÊý¾Ý½øÐÐÌáÈ¡¡¢´¦ÀíºÍ¸ñʽ»¯
`awk` µÄÇ¿´óÖ®´¦ÔÚÓÚÆäÄÚÖñäÁ¿¡¢²Ù×÷·û¡¢º¯ÊýÒÔ¼°Áé»îµÄ×ֶδ¦Àí»úÖÆ
1. »ù±¾Ó÷¨ `awk` µÄ»ù±¾Ó÷¨ÊÇÖðÐжÁÈ¡Îļþ£¬²¢¶ÔÿÐнøÐÐÖ¸¶¨µÄ²Ù×÷
ÀýÈ磺 awk {print $1} filename Õ⽫»áÊä³ö `filename` ÎļþÖÐÿÐеĵÚÒ»¸ö×ֶΣ¨Ä¬ÈÏ×ֶηָô·ûÊǿոñ»òÖÆ±í·û£©
2. ³£ÓÃÑ¡Ïî - `-F fs`£ºÖ¸¶¨×ֶηָô·û`fs`
ÀýÈç `awk -F:{print $1} /etc/passwd` »áÒÔðºÅΪ·Ö¸ô·û£¬Êä³ö`/etc/passwd`ÎļþÖÐÿÐеĵÚÒ»¸ö×ֶΣ¨Óû§Ãû£©
- `-v var=value`£ºÔÚ `awk` ³ÌÐòÖÐÉèÖÃÒ»¸ö±äÁ¿¼°ÆäÖµ
- `-f program-file`£º´ÓÖ¸¶¨µÄÎļþÖжÁÈ¡`awk` ³ÌÐò
3. ±à³Ì½á¹¹ `awk` Ö§³Ö¶àÖÖ±à³Ì½á¹¹£¬°üÀ¨Ìõ¼þÓï¾ä£¨`if-else`£©¡¢Ñ»·Óï¾ä£¨`for`¡¢`while`£©¡¢Êý×éµÈ
ÕâʹµÃ `awk` Äܹ»´¦Àí¸´ÔÓµÄÎı¾´¦ÀíÈÎÎñ
ÀýÈ磬¼ÆËãÒ»¸öÎı¾ÎļþÖÐÿÐеĵ¥´ÊÊý£º awk {word_count = NF; print word_count} filename ÕâÀï `NF`ÊÇ `awk` µÄÄÚÖñäÁ¿£¬±íʾµ±Ç°ÐеÄ×Ö¶ÎÊý£¨¼´µ¥´ÊÊý£©
4. º¯Êý `awk` ÄÚÖÃÁ˶àÖÖº¯Êý£¬°üÀ¨×Ö·û´®º¯Êý£¨Èç `length`¡¢`substr`¡¢`index`£©¡¢Êýѧº¯Êý£¨Èç `sin`¡¢`cos`¡¢`exp`£©¡¢Ê±¼äº¯Êý£¨Èç `systime`£©µÈ
ÕâЩº¯Êý´ó´óÔöÇ¿ÁË`awk` µÄ´¦ÀíÄÜÁ¦
Èý¡¢grep Óë awk µÄ×éºÏʹÓà `grep` ºÍ`awk`¸÷ÓÐÆäÓÅÊÆ£¬µ«½«ËüÃÇ×éºÏʹÓ㬿ÉÒÔ·¢»Ó³ö¸ü´óµÄÍþÁ¦
ÀýÈ磬¿ÉÒÔÏÈÓÃ`grep`ËÑË÷³ö·ûºÏÌõ¼þµÄÐУ¬È»ºóÔÙÓÃ`awk` ¶ÔÕâЩÐнøÐнøÒ»²½µÄ´¦Àí
1. »ù±¾×éºÏ ¼ÙÉèÓÐÒ»¸öÈÕÖ¾Îļþ `logfile.txt`£¬ÎÒÃÇÏëÒªÕÒ³ö°üº¬ error µÄÐУ¬²¢Êä³öÕâЩÐеĵÚÒ»¸ö×ֶΣ¨Í¨³£ÊÇʱ¼ä´Á£©£º grep error logfile.txt |awk {print $1} Õâ¸öÃüÁîÊ×ÏÈʹÓÃ`grep`ËÑË÷³ö°üº¬ error µÄÐУ¬È»ºóͨ¹ý¹ÜµÀ£¨|£©½«ÕâЩÐд«µÝ¸ø`awk`£¬`awk` ÔÙÊä³öÕâЩ