[ 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+)$/'
¸¦ Çغ¸½Ã¸é ´õ ¸íÈ®ÇØÁú °Ì´Ï´Ù.