grep ¸í·É¾î Á¤¸® 2007/02/13 13:27 http://blog.naver.com/imawake/140034570695 1 grep ¸í·É¾î 3.1.1 grepÀÇ ÀÇ¹Ì grep : ÆÄÀÏ Àüü¸¦ µÚÁ® Á¤±ÔÇ¥Çö½Ä¿¡ ´ëÀÀÇÏ´Â ¸ðµç ÇàµéÀ» Ãâ·ÂÇÑ´Ù. egrep : grepÀÇ È®ÀåÆÇÀ¸·Î, Ãß°¡ Á¤±ÔÇ¥Çö½Ä ¸ÞŸ¹®ÀÚµéÀ» Áö¿øÇÑ´Ù. fgrep : fixed grep À̳ª fast grepÀ¸·Î ºÒ¸®¸ç, ¸ðµç ¹®ÀÚ¸¦ ¹®ÀÚ ±×·¡µµ Ãë±ÞÇÑ´Ù. Áï, Á¤ ±ÔÇ¥Çö½ÄÀÇ ¸ÞŸ¹®ÀÚµµ ÀÏ¹Ý ¹®ÀÚ·Î Ãë±ÞÇÑ´Ù. 3.1.2 grepÀÇ µ¿ÀÛ ¹æ¹ý grep¿¡¼­ »ç¿ëÇÏ´Â Á¤±ÔÇ¥Çö½Ä ¸ÞŸ¹®ÀÚ ¸ÞŸ¹®ÀÚ ±â ´É »ç¿ë ¿¹ »ç¿ë ¿¹ ¼³¸í ^ ÇàÀÇ ½ÃÀÛ Áö½ÃÀÚ '^love' love·Î ½ÃÀÛÇÏ´Â ¸ðµç Çà°ú ´ëÀÀ $ ÇàÀÇ ³¡ Áö½ÃÀÚ 'love$' love·Î ³¡³ª´Â ¸ðµç Çà°ú ´ëÀÀ . ÇϳªÀÇ ¹®ÀÚ¿Í ´ëÀÀ 'l..e' l ´ÙÀ½¿¡ µÎ ±ÛÀÚ°¡ ³ª¿À°í e·Î ³¡³ª´Â ¹®ÀÚ¿­À» Æ÷ÇÔÇÏ´Â Çà°ú ´ëÀÀ * ¼±Ç๮ÀÚ¿Í °°Àº ¹®ÀÚÀÇ 0°³ ȤÀº ÀÓÀÇ°³¼ö¿Í ´ëÀÀ ' *love' 0°³ ȤÀº ÀÓÀÇ °³¼öÀÇ °ø¹é ¹®ÀÚ ÈÄ¿¡ love·Î ³¡³ª´Â ¹®ÀÚ¿­À» Æ÷ÇÔÇÑ Çà°ú ´ëÀÀ [] [] »çÀÌÀÇ ¹®ÀÚ ÁýÇÕÁß Çϳª¿Í ´ëÀÀ '[Ll]ove' love³ª Love¸¦ Æ÷ÇÔÇÏ´Â Çà°ú ´ëÀÀ [^ ] ¹®ÀÚÁýÇÕ¿¡ ¼ÓÇÏÁö ¾Ê´Â ÇÑ ¹®ÀÚ¿Í ´ëÀÀ '[^A-K]love' A¿Í K »çÀÌÀÇ ¹üÀ§¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â ÇÑ ¹®ÀÚ¿Í ove°¡ ºÙ¾îÀÖ´Â ¹®ÀÚ¿­°ú ´ëÀÀ \< ´Ü¾îÀÇ ½ÃÀÛ Áö½ÃÀÚ '\ love·Î ½ÃÀÛÇÏ´Â ´Ü¾î¸¦ Æ÷ÇÔÇÏ´Â Çà°ú ´ëÀÀ(vi,grep¿¡¼­ Áö¿ø) \> ´Ü¾îÀÇ ³¡ Áö½ÃÀÚ 'love\>' love·Î ³¡³ª´Â ´Ü¾î¸¦ Æ÷ÇÔÇÏ´Â Çà°ú ´ëÀÀ (vi,grep¿¡¼­ Áö¿ø) \(..\) ´ÙÀ½ »ç¿ëÀ» À§ÇØ Å±׸¦ ºÙÀδÙ. '\(lov\)ing' ÁöÁ¤µÈ ºÎºÐÀ» ÅÂÅ©1¿¡ ÀúÀåÇÑ´Ù. ³ªÁß¿¡ űװªÀ» Âü°íÇÏ·Á¸é \1À» ¾´´Ù. ¸Ç ¿ÞÂʺÎÅÍ ½ÃÀÛÇØ Å±׸¦ 9°³°¡Áö ¾µ ¼ö ÀÖ´Ù. ¿ÞÂÊ ¿¹¿¡¼­´Â lov°¡ ·¹Áö½ºÅÍ1¿¡ ÀúÀåµÇ°í ³ªÁß¿¡ \1·Î Âü°íÇÒ ¼ö ÀÖ´Ù. x\{m\} ¹®ÀÚ x¸¦ m¹ø ¹Ýº¹ÇÑ´Ù. 'o\{5\}' ¹®ÀÚ o°¡ 5ȸ ¿¬¼ÓÀûÀ¸·Î ³ª¿À´Â ¸ðµç Çà°ú ´ëÀÀ x\{m,\} Àû¾îµµ m¹ø ¹Ýº¹ÇÑ´Ù. 'o\{5,\}' ¹®ÀÚ o°¡ ÃÖ¼ÒÇÑ 5ȸ ¹Ýº¹µÇ´Â ¸ðµç Çà°ú ´ëÀÀ x\{m,n\} mȸ ÀÌ»ó nȸ ÀÌÇÏ ¹Ýº¹ÇÑ´Ù. o\{5,10\}' ¹®ÀÚ o°¡ 5ȸ¿¡¼­ 10ȸ »çÀÌÀÇ È½¼ö·Î ¿¬¼ÓÀûÀ¸·Î ³ªÅ¸³ª´Â ¹®ÀÚ¿­°ú ´ëÀÀ grepÀÇ ¿É¼Ç ¿É¼Ç µ¿ÀÛ ¼³¸í -b °Ë»ö °á°úÀÇ °¢ Çà ¾Õ¿¡ °Ë»öµÈ À§Ä¡ÀÇ ºí·Ï ¹øÈ£¸¦ Ç¥½ÃÇÑ´Ù. °Ë»ö ³»¿ëÀÌ µð½ºÅ©ÀÇ ¾îµðÂë ÀÖ´ÂÁö À§Ä¡¸¦ ¾Ë¾Æ³»´Âµ¥ À¯¿ëÇÏ´Ù. -c °Ë»ö °á°ú¸¦ Ãâ·ÂÇÏ´Â ´ë½Å, ã¾Æ³½ ÇàÀÇ ÃѼö¸¦ Ãâ·ÂÇÑ´Ù. -h ÆÄÀÏ À̸§À» Ãâ·ÂÇÏÁö ¾Ê´Â´Ù. -i ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐ ÇÏÁö ¾Ê´Â´Ù.(´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ µ¿ÀÏÇÏ°Ô Ãë±Þ). -l ÆÐÅÏÀÌ Á¸ÀçÇÏ´Â ÆÄÀÏÀÇ À̸§¸¸ Ãâ·ÂÇÑ´Ù.(°³Ç๮ÀÚ·Î ±¸ºÐ) -n ÆÄÀÏ ³»¿¡¼­ Çà ¹øÈ£¸¦ ÇÔ²² Ãâ·ÂÇÑ´Ù. -s ¿¡·¯ ¸Þ½ÃÁö ¿Ü¿¡´Â Ãâ·ÂÇÏÁö ¾Ê´Â´Ù. Á¾·á»óŸ¦ °Ë»çÇÒ ¶§ À¯¿ëÇÏ°Ô ¾µ ¼ö ÀÖ´Ù. -v ÆÐÅÏÀÌ Á¸ÀçÇÏÁö ¾Ê´Â Çุ Ãâ·ÂÇÑ´Ù. -w ÆÐÅÏ Ç¥Çö½ÄÀ» ÇϳªÀÇ ´Ü¾î·Î Ãë±ÞÇÏ¿© °Ë»öÇÑ´Ù. # grep -n '^jack:' /etc/passwd (/etc/passwd ÆÄÀÏ¿¡¼­ jackÀ» ã´Â´Ù. jackÀÌ ÇàÀÇ ¸Ç ¾Õ¿¡ ÀÖÀ¸¸é Çà ¹øÈ£¸¦ È­¸éÀ¸·Î Ãâ·ÂÇÑ´Ù.) 3.1.3 grep°ú Á¾·á »óÅ grepÀº ÆÄÀÏ °Ë»öÀÇ ¼º°ø ¿©ºÎ¸¦ Á¾·á »óÅ°ªÀ¸·Î µÇµ¹·ÁÁØ´Ù. ÆÐÅÏÀ» ãÀ¸¸é 0, ÆÐÅÏÀ» ãÀ» ¼ö ¾øÀ¸¸é 1, ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì 2 sed,aÀÚ µîÀº °Ë»öÀÇ ¼º°ø ¿©ºÎ¿¡ ´ëÇÑ Á¾·á »óÅ°ªÀ» ¹ÝȯÇÏÁö ¾Ê´Â´Ù. ´Ù¸¸ ±¸¹® ¿¡·¯°¡ ÀÖÀ» °æ¿ì¿¡¸¸ ¿¡·¯¸¦ º¸°íÇÑ´Ù. 3.2 Á¤±ÔÇ¥Çö½ÄÀ» »ç¿ëÇÏ´Â grepÀÇ ¿¹Á¦ # grep NW datafile # grep NW d* (d·Î ½ÃÀÛÇÏ´Â ¸ðµç ÆÄÀÏ¿¡¼­ NW¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç ÇàÀ» ã´Â´Ù.) # grep '^n' datafile (nÀ¸·Î ½ÃÀÛÇÏ´Â ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '4$' datafile (4·Î ³¡³ª´Â ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep TB Savage datafile (TB¸¸ ÀÎÀÚÀÌ°í Savage¿Í datafileÀº ÆÄÀÏ À̸§ÀÌ´Ù.) # grep 'TB Savage' datafile (TB Savage¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '5\.' datafile (¼ýÀÚ 5, ¸¶Ä§Ç¥, ÀÓÀÇÀÇ ÇÑ ¹®ÀÚ°¡ ¼ø¼­´ë·Î ³ªÅ¸³ª´Â ¹®ÀÚ¿­ÀÌ Æ÷ÇÔµÈ ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '\.5' datafile (.5°¡ ³ª¿À´Â ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '^[we]' datafile (w³ª e·Î ½ÃÀÛÇÏ´Â ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '[^0-9]' datafile (¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¦ Çϳª¶óµµ Æ÷ÇÔÇÏ´Â ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '[A-Z][A-Z] [A-Z]' datafile (´ë¹®ÀÚ 2°³¿Í °ø¹é 1°³, ±×¸®°í ´ë¹®ÀÚ Çϳª°¡ ¿¬ÀÌ¾î ³ª¿À´Â ¹®ÀÚ¿­ÀÌ Æ÷ÇÔµÈ ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep 'ss* ' datafile (s°¡ ÇÑ ¹ø ³ª¿À°í, ´Ù½Ã s°¡ 0¹ø ¶Ç´Â ¿©·¯¹ø ³ª¿Â ÈÄ¿¡ °ø¹éÀÌ ¿¬ÀÌ¾î µîÀåÇÏ´Â ¹®ÀÚ¿­À» Æ÷ÇÔÇÑ ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '[a-z]\{9\}' datafile (¼Ò¹®ÀÚ°¡ 9¹ø ÀÌ»ó ¹Ýº¹µÇ´Â ¹®ÀÚ¿­À» Æ÷ÇÔÇÏ´Â ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '\(3\)\.[0-9].*\1 *\1' datafile (¼ýÀÚ 3,¸¶Ä§Ç¥,ÀÓÀÇÀÇ ÇÑ ¼ýÀÚ,ÀÓÀÇ °³¼öÀÇ ¹®ÀÚ,¼ýÀÚ 3(ű×),ÀÓÀÇ °³¼öÀÇ ÅÇ ¹®ÀÚ,¼ýÀÚ 3ÀÇ ¼ø¼­¸¦ °®´Â ¹®ÀÚ¿­ÀÌ Æ÷ÇÑµÈ ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '\ (north·Î ½ÃÀÛÇÏ´Â ´Ü¾î°¡ Æ÷ÇÔµÈ ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '\' datafile (north¶ó´Â ´Ü¾î°¡ Æ÷ÇÔµÈ ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù.) # grep '\<[a-z].*n\>' datafile (¼Ò¹®ÀÚ Çϳª·Î ½ÃÀÛÇÏ°í, À̾ ÀÓÀÇ °³¼öÀÇ ¿©·¯ ¹®ÀÚ°¡ ³ª¿À¸ç, nÀ¸·Î ³¡³ª´Â ´Ü¾î°¡ Æ÷ÇÔµÈ ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù. ¿©±â¼­ .*´Â °ø¹éÀ» Æ÷ÇÔÇÑ ÀÓÀÇÀÇ ¹®ÀÚµéÀ» ÀǹÌÇÑ´Ù.) 3.3 grep¿¡ ¿É¼Ç »ç¿ë # grep -n '^south' datafile (Çà¹øÈ£¸¦ ÇÔ²² Ãâ·ÂÇÑ´Ù.) # grep -i 'pat' datafile (´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê°Ô ÇÑ´Ù.) # grep -v 'Suan Chin' datafile (¹®ÀÚ¿­ Suan ChinÀÌ Æ÷ÇÔµÇÁö ¾ÊÀº ¸ðµç ÇàÀ» Ãâ·ÂÇÏ°Ô ÇÑ´Ù. ÀÌ ¿É¼ÇÀº ÀÔ·Â ÆÄÀÏ¿¡¼­ ƯÁ¤ ³»¿ëÀÇ ÀÔ·ÂÀ» »èÁ¦Çϴµ¥ ¾²ÀδÙ. # grep -v 'Suan Chin' datafile > black # mv black datafile ) # grep -l 'SE' * (ÆÐÅÏÀÌ Ã£¾ÆÁø ÆÄÀÏÀÇ Çà ¹øÈ£ ´ë½Å ´ÜÁö ÆÄÀÏÀ̸§¸¸ Ãâ·ÂÇÑ´Ù.) # grep -w 'north' datafile (ÆÐÅÏÀÌ ´Ù¸¥ ´Ü¾îÀÇ ÀϺΰ¡ ¾Æ´Ñ ÇϳªÀÇ ´Ü¾î°¡ µÇ´Â °æ¿ì¸¸ ã´Â´Ù. northwest³ª northeast µîÀÇ ´Ü¾î°¡ ¾Æ´Ï¶ó, north¶ó´Â ´Ü¾î°¡ Æ÷ÇÔµÈ Çุ Ãâ·ÂÇÑ´Ù.) # grep -i "$LOGNAME" datafile (ȯ°æº¯¼öÀÎ LOGNAMEÀÇ °ªÀ» °¡Áø ¸ðµç ÇàÀ» Ãâ·ÂÇÑ´Ù. º¯¼ö°¡ Å«µû¿ÈÇ¥·Î µÑ·¯½Î¿© ÀÖ´Â °æ¿ì, ½©Àº º¯¼öÀÇ °ªÀ¸·Î ġȯÇÑ´Ù. ÀÛÀºµû¿ÈÇ¥·Î µÑ·¯½Î¿© ÀÖÀ¸¸é º¯¼ö ġȯÀÌ ÀϾÁö ¾Ê°í ±×³É $LOGNAME À̶ó´Â ¹®ÀÚ·Î Ãâ·ÂµÈ´Ù.) 3.4 egrep egrep(extended grep) : grep¿¡¼­ Á¦°øÇÏÁö ¾Ê´Â È®ÀåµÈ Á¤±ÔÇ¥Çö½Ä ¸ÞŸ¹®ÀÚ¸¦ Áö¿ø ÇÑ´Ù. grep¿Í µ¿ÀÏÇÑ ¸í·ÉÇà ¿É¼ÇÀ» Áö¿øÇÑ´Ù. egrep¿¡¼­ Áö¿øÇÏ´Â È®Àå ¸ÞŸ¹®ÀÚ ¸ÞŸ¹®ÀÚ ±â´É »ç¿ë ¿¹ »ç¿ë ¿¹ ¼³¸í + ¼±Ç๮ÀÚ¿Í °°Àº ¹®ÀÚÀÇ 1°³ ȤÀº ÀÓÀÇ °³¼ö¿Í ´ëÀÀ '[a-z]+ove' 1°³ ÀÌ»óÀÇ ¼Ò¹®ÀÚ µÚ¿¡ ove°¡ ºÙ¾îÀÖ´Â ¹®ÀÚ¿­°ú ´ëÀÀ. move,approve,love,behoove µîÀÌ ÇØ´çµÈ´Ù. ? ¼±Ç๮ÀÚ¿Í °°Àº ¹®ÀÚÀÇ0°³ ȤÀº 1°³¿Í ´ëÀÀ 'lo?ve' l ´ÙÀ½¿¡ 0°³ÀÇ ¹®ÀÚ È¤Àº ÇϳªÀÇ ¹®ÀÚ°¡ o°¡ ³ª¿À´Â ¹®ÀÚ¿­°ú ´ëÀÀ. love,lve µîÀÌ ÇØ´çµÈ´Ù. a|b a ȤÀº b¿Í ´ëÀÀ 'love|hate' love ȤÀº hate¿Í ´ëÀÀ. () Á¤±ÔÇ¥Çö½ÄÀ» ¹­¾îÁØ´Ù 'love(able|ly)' lovable ȤÀº lovely¿Í ´ëÀÀ. '(ov)+' ov°¡ ÇÑ ¹ø ÀÌ»ó µîÀåÇÏ´Â ¹®ÀÚ¿­°ú ÀÏÄ¡. 3.4.1 egrep ¿¹Á¦ # egrep 'NW|EA' datafile (NW³ª EA°¡ Æ÷ÇÔµÈ ÇàÀ» Ãâ·ÂÇÑ´Ù.) # egrep '3+' datafile (¼ýÀÚ 3ÀÌ ÇÑ ¹ø ÀÌ»ó µîÀåÇÏ´Â ÇàÀ» Ãâ·ÂÇÑ´Ù.) # egrep '2\.?[0-9]' datafile (¼ýÀÚ 2 ´ÙÀ½¿¡ ¸¶Ä§Ç¥°¡ ¾ø°Å³ª ÇÑ ¹ø ³ª¿À°í, ´Ù½Ã ¼ýÀÚ°¡ ¿À´Â ÇàÀ» Ãâ·ÂÇÑ´Ù.) # egrep ' (no)+' datafile (ÆÐÅÏ no°¡ ÇÑ ¹ø ÀÌ»ó ¿¬¼ÓÇؼ­ ³ª¿À´Â ÇàÀ» Ãâ·ÂÇÑ´Ù.) # egrep 'S(h|u)' datafile (¹®ÀÚ S ´ÙÀ½¿¡ h³ª u°¡ ³ª¿À´Â ÇàÀ» Ãâ·ÂÇÑ´Ù.) # egrep 'Sh|u' datafile (ÆÐÅÏ Sh³ª u¸¦ Æ÷ÇÔÇÑ ÇàÀ» Ãâ·ÂÇÑ´Ù.) 3.5 °íÁ¤ grep °ú ºü¸¥ grep fgrep : grep ¸í·É¾î¿Í µ¿ÀÏÇÏ°Ô µ¿ÀÛÇÑ´Ù. ´Ù¸¸ Á¤±ÔÇ¥Çö½Ä ¸ÞŸ¹®ÀÚµéÀ» Ưº°ÇÏ°Ô Ãë±ÞÇÏÁö ¾Ê´Â´Ù. # fgrep '[A-Z]****[0-9]..$5.00' file ([A-Z]****[0-9]..$5.00 ÀÌ Æ÷ÇÔµÈ ÇàÀ» Ãâ·ÂÇÑ´Ù. ¸ðµç ¹®ÀÚµéÀ» ¹®ÀÚ ÀÚü·Î¸¸ Ãë±ÞÇÑ´Ù.) ÃâÀú: sunschool