[ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): guest (guest) <210.183.233.207> ³¯ Â¥ (Date): 2001³â 4¿ù 8ÀÏ ÀÏ¿äÀÏ ¿ÀÈÄ 07½Ã 46ºÐ 14ÃÊ Á¦ ¸ñ(Title): grep ¿¡ ´ëÇÏ¿©..[Q] time garbage info test data ... µîµîÀÇ Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Â ·Î±× ÆÄÀϵéÀÌ ÀÖ½À´Ï´Ù. ÀÌ°É cat °ú grep ¸í·ÉµîÀ» »ç¿ëÇؼ­ ÇÊ¿äÇÑ ºÎºÐ¸¸ Ãâ·ÂÇÏ´Â (html ÆûÀ¸·Î...) ½ºÅ©¸³Æ®¸¦ ¸»µé°í ½Í½À´Ï´Ù. time info ¿Í °°ÀÌ data Ç׸ñÀ» °¡Áö°í ÀÖ´Â ¶óÀε鸸À» °¡Áö°í À§¿Í °°Àº ÆûÀ» Ãâ·ÂÇÏ°Ô²û ÇÏ·Á´Â µ¥ ¹æ¹ýÀ» ¾Ë·Á ÁÖ¼¼¿ä. ¹Ì¸® °¨»ç. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): testors (Å×½ºÅ佺) ³¯ Â¥ (Date): 2001³â 4¿ù 9ÀÏ ¿ù¿äÀÏ ¿ÀÀü 03½Ã 29ºÐ 13ÃÊ Á¦ ¸ñ(Title): Re: grep ¿¡ ´ëÇÏ¿©..[Q] grep¸¸ °¡Áö°í´Â ¾ÈµÇ°í awkµµ ½á¾ß°ÚÁÒ.. ¿¹±âÇϽŰɷΠ¿¹¸¦µéÀÚ¸é.. # cat log.txt | awk '{print ""$1""$3""}' - Testors [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): guest (geust) <210.183.233.207> ³¯ Â¥ (Date): 2001³â 4¿ù 9ÀÏ ¿ù¿äÀÏ ¿ÀÈÄ 01½Ã 29ºÐ 13ÃÊ Á¦ ¸ñ(Title): Re: grep ¿¡ ´ëÇÏ¿©..[Q] ´äº¯ °¨»çÇÕ´Ï´Ù. ¿©±â¼­ Áú¹® Çϳª ´õ ^^; test=test gabage=gabage info=info data=data gabage=gabage test=test info=info data=data .... µîµî ·Î±× ÆÄÀÏÀÇ ÅÂ±× À§Ä¡°¡ ¾à»ê¾¿ ´Ù¸¦ ¶§ ¿øÇÏ´Â Çʵåµé(test, info,data µîµî)µéÀÇ °ªµé¸¸ Ãâ·ÂÇÒ ¶§ (´Ü¼øÈ÷ À§Ä¡¸¸ º¸´Â°Ô ¾Æ´Ï¶ó ¹®ÀÚ¿­ ºñ±³±îÁö..) µµ awk¸¦ ½á¼­ °¡´ÉÇÑÁö¿ä? ±×·¸´ã ¹æ¹ýµµ.. ±×³É C·Î Çϱâ·Î Çߴµ¥ ¾Ë¾ÆµÎ¸é ÁÁÀ» °Í °°¾Æ¼­¿ä. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (the cowboy) ³¯ Â¥ (Date): 2001³â 4¿ù 9ÀÏ ¿ù¿äÀÏ ¿ÀÈÄ 02½Ã 10ºÐ 57ÃÊ Á¦ ¸ñ(Title): Re: grep ¿¡ ´ëÇÏ¿©..[Q] ¾î¶² ¾ð¾î¸¦ ¾²µç ¸¶Âù°¡Áö°ÚÁö¸¸... C³ª sed & awk, Perl ¾Æ¹«°Å³ª... Àú°°À¸¸é perl·Î °£´ÜÇÏ°Ô... perl -ne 'print "$1 $2 $3 \n" if /test=(\S+) data=(\S+) info=(\S+)/' /.../¿¬»êÀÚ¿¡ ³ª¿À´Â ()´Â ¸ÅÄ¡°¡ ÀÌ·ç¾îÁö´Â ¹®ÀÚ¿­À» $1, $2, ...¿¡ ³Ö¾îÁֱ⠶§¹®¿¡ ¾ÆÁÖ ½±°Ô $1, $2, ...¿¡ ÇØ´çÇÏ´Â ¹®ÀÚ¿­À» ¿ä¸®ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. \S´Â white space°¡ ¾Æ´Ñ ¹®ÀÚµéÀ» ¶æÇÏÁÒ. \S+´Â ºñ°ø¹é¹®ÀÚ°¡ 1°³ ÀÌ»ó ³ª¿À´Â ¹®ÀÚ¿­À» ¶æÇϱ¸¿ä. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): guest (guest) <210.183.233.207> ³¯ Â¥ (Date): 2001³â 4¿ù 9ÀÏ ¿ù¿äÀÏ ¿ÀÈÄ 03½Ã 29ºÐ 49ÃÊ Á¦ ¸ñ(Title): Re: grep ¿¡ ´ëÇÏ¿©..[Q] °¡¸£ÃÄ Áص¥·Î perl ¸í·ÉÀ¸·Î Çß´õ´Ï SCALAR(0x0101cc9)SCALAR(xxxc...)°¡ °è¼Ó ³ª¿À³×¿ä? perl -ne 'print "$1 $2 \n" \ if /test=(/S+) data=(\S+) .../' logfile °ú °°ÀÌ Çß½À´Ï´Ù. \'´Â ¿£ÅÍ ¿·ÀÇ '¸ÂÁÒ? [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (the cowboy) ³¯ Â¥ (Date): 2001³â 4¿ù 9ÀÏ ¿ù¿äÀÏ ¿ÀÈÄ 05½Ã 30ºÐ 12ÃÊ Á¦ ¸ñ(Title): Re: grep ¿¡ ´ëÇÏ¿©..[Q] ¾Ñ, ...À» ±×´ë·Î ³ÖÀ¸½Å °ÍÀº ¾Æ´Ï°ÚÁÒ? perl -ne 'print "$1\n" if /test=(\S+)/' ÀÔ´Ï´Ù. ¶Ç´Â, perl -ne 'print "$1 $2\n" if /test=(\S+)\s+data=(\S+)/' ÀÏ ¼ö Àְڳ׿ä. ¿©±â¿¡¼­ test=1323 data=lkfjs°¡ logfile¿¡ ÀÖ´Ù°í °¡Á¤ÇÒ ¶§, testÇ׸ñ°ú dataÇ׸ñ »çÀÌ¿¡ ½ºÆäÀ̽º³ª ÅÇÀÌ µé¾î°¥ ¼ö ÀÖÀ¸¹Ç·Î °ø¹é¹®ÀÚ¸¦ ¶æÇÏ´Â \s°¡ 1°³ ÀÌ»ó µé¾î°¥ ¼ö ÀÖ´Ù°í ÁöÁ¤ÇÏ¿´½À´Ï´Ù. \s : whitespace \S : non-whitespace + : 1 or more * : 0 or more Ȥ½Ã Ç׸ñÀÇ ¼ø¼­°¡ ¹Ù²î´Â °æ¿ì¸¦ °í·ÁÇغ»´Ù¸é... Perl¿¡¼­´Â ÀÏ´Ü ÀÔ·ÂµÈ ³»¿ëÀÇ ÇÑ ¶óÀÎÀ» $_¿¡ ÀúÀåÇÏ°Ô µÇ´Ï±ñ, perl -ne 'print "$1\n" if $_ =~ /test=(\S+)/; \ print "$1\n" if $_ =~ /data=(\S+)/' ·Î µÎ ¹ø ó¸®Çϼŵµ µÉ °Ì´Ï´Ù. =~´Â °Ë»öÀ̳ª ġȯ ¿¬»êÀÚÀÔ´Ï´Ù. ÀÔ·ÂµÈ ³»¿ëÀÇ ÇÑ ¶óÀÎ($_)¿¡ ´ëÇؼ­ /.../¾È¿¡ µé¾î°¡´Â Á¤±ÔÇ¥Çö½ÄÀ» °Ë»öÇÏ¿© °á°ú°¡ ÀÖÀ¸¸é ¸ÅÄ¡µÈ Ç׸ñÀÎ 1323°ú lkfjs¸¦ Ãâ·ÂÇ϶ó´Â ³»¿ëÀÌÁÒ. ÀÌ·¸°Ô µÇ¸é Â÷¶ó¸® sed & awk°¡ ´õ ½¬¿ï ¼öµµ Àְڳ׿ä... -_-;; [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): guest (guest) <210.183.233.207> ³¯ Â¥ (Date): 2001³â 4¿ù 9ÀÏ ¿ù¿äÀÏ ¿ÀÈÄ 06½Ã 45ºÐ 42ÃÊ Á¦ ¸ñ(Title): Re: grep ¿¡ ´ëÇÏ¿©..[Q] ÀÚ²Ù ¹°°í ´Ã¾îÁ®¼­ Á˼ÛÇѵ¥¿ä ^^; À§¿¡°ÍÀº ¿ÀŸ°¡ ÀÖ¾ú½À´Ï´Ù. óÀ½ °¡¸£ÃÄ ÁֽŠºÐÀº ÇʵåÀÇ À§Ä¡¿¡ µû¶ó $1, $2°¡ Á¤ÇØÁ³°í µÎ¹ø° ºÐÀº ¹®ÀÚ¿­ ¸ÅÄ¡¿¡ µû¶ó $1, $2µîÀÌ Á¤ÇØÁ³´Âµ¥ µÎ°³ÀÇ Á¶ÇÕÀº ¾î¶»°Ô µÇ³ª¿ä? ab cd test=234 info=345 µîµîÀÇ Çü½ÄÀ̶ó°í ÇÒ ¶§ óÀ½ µÎ°³±îÁöÀÇ °ø¹éÀº ±×³É $1, $2·Î ³Ö°í ³ª¸ÓÁö´Â ¿øÇÏ´Â °Íµé¸¸ $3, $4..·Î ÁöÁ¤ÇÏ´Â ¹æ¹ýµµ °¡¸£ÃÄ ÁÖ¼¼¿ä. ^^; ¿ª½Ã C°¡ ÆíÇѵ¥... [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (the cowboy) ³¯ Â¥ (Date): 2001³â 4¿ù 9ÀÏ ¿ù¿äÀÏ ¿ÀÈÄ 09½Ã 41ºÐ 26ÃÊ Á¦ ¸ñ(Title): Re: grep ¿¡ ´ëÇÏ¿©..[Q] Á¶±Ý ¹®Á¦°¡ ¸íÈ®ÇÏÁö ¾ÊÀº °Í °°Àºµ¥, Á¦°¡ ¹Þ¾ÆµéÀ̱â·Î´Â óÀ½¿¡ ³ª¿À´Â ´Ü¾î 2°³´Â $1°ú $2¿¡ ³Ö°í, ³ªÁß¿¡ ³ª¿À´Â ¹®ÀÚ¿­Àº name=valueÇü½Ä¿¡¼­ value¸¦ ²¨³»´Â °Å¶ó¸é... print "$1 $2\n" if /^(\S+)\s+(\S+)\s+/; ¸¦ Ãß°¡ÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù. echo "ab cd test=123 data=3245" | perl -ne 'print "$1 $2\n" \ if /^(\S+)\s+(\S+)\s+/; print "$1\n" if $_ =~ /test=(\S+)/; \ print "$1\n" if $_ =~ /data=(\S+)/' Á¤µµ·Î Å×½ºÆ®Çغ¸½Ç ¼ö ÀÖ½À´Ï´Ù. ^´Â ¶óÀÎÀÇ ¸ÇóÀ½ À§Ä¡¸¦ ¶æÇÏ°í $´Â ¸Ç ¸¶Áö¸·À» ¶æÇÏÁÒ. ±×·¯´Ï±ñ ¶óÀÎÀÇ ¸ÇóÀ½¿¡ ³ª¿À´Â ºñ°ø¹é¹®ÀÚ·Î ÀÌ·ç¾îÁø ´Ü¾î 2°³¸¦ Ãâ·ÂÇÏ°í... ³ª¸ÓÁö´Â ¾Õ¿¡¼­ ¼³¸íµå¸° °Í°ú ¶È°°ÁÒ. ¸¸¾à Àß¶ó³»°í ½ÍÀº ¹®ÀÚ¿­ÀÌ ¹®ÀÚ(a-z, A-z)·Î¸¸ ÀÌ·ç¾îÁ®ÀÖÀ¸¸é \w¸¦ ½áµµ µÇ°í, ¼ýÀÚ(0-9)·Î¸¸ ÀÌ·ç¾îÁ®ÀÖÀ¸¸é \d·Î ¾²¼Åµµ µÇ´Âµ¥ ¿©±â¼­´Â °ø¹éÀ¸·Î ±¸ºÐÇÏ´Â °Í °°¾Æ¼­ ºñ°ø¹é¹®ÀÚÀÎ \S¸¦ ÀÌ¿ëÇÑ °ÍÀÔ´Ï´Ù. echo "ab 12" | perl -ne 'print "$2 $1" if /^(\w+)\s+(\d+)$/' ¸¦ Çغ¸½Ã¸é ´õ ¸íÈ®ÇØÁú °Ì´Ï´Ù.