|
|
|
¸®´ª½ºÆÁ Go Unix Power Tools Online Book
Go Bash Guide
|
|
Read No. 198 article |
2005-03-06 00:20:08 |
|
|
|
|
NickName |
Ç®ºñ´© |
Subject |
awk |
|
|
̉˜ : http://database.sarang.net/study/awk/awk.html
http://database.sarang.net/study/
AWK
- awk´Â Á÷Á¢ »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀ» ¹Þ°Å³ª ¾Æ´Ï¸é ÁöÁ¤ÇÑ ÆÄÀÏÀ» °¡°øÇÏ¿©
Ç¥ÁØ Ãâ·ÂÇÑ´Ù
Ç¥ÁØ Ãâ·ÂÀ» ¸®´ÙÀÌ·º¼ÇÇÒ ¼ö ÀÖ´Ù
- »ç¿ë¹ý
- awk [¿É¼Ç] '½ºÅ©¸³Æ®' [-v
º¯¼ö=°ª] [ÆÄÀÏ(µé)]
- awk [¿É¼Ç] -f ½ºÅ©¸³Æ® ÆÄÀÏ [-v
º¯¼ö=°ª] [ÆÄÀÏ(µé)]
- cf) ÆíÁý ½ºÅ©¸³Æ® ÆÄÀÏÀÇ »ç¿ë¹ý
- ed : ed -s(script) sourcefile < scriptfile
- sed : sed -f(file) scriptfile sourcefile > outputfile
- awk : awk -f(file) scriptfile sourcefile > outputfile
- ¿É¼Ç
- -Fc : field separator ÁöÁ¤
- c´Â ÇÊµå »çÀ̸¦ ±¸ºÐÇÏ´Â ±¸ºÐÀÚÀÌ´Ù
- Á÷Á¢ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é °ø¹éÀ» ±âÁØÀ¸·Î ÇÑ´Ù
- ½Ã½ºÅÛ º¯¼ö FS¸¦ ÁöÁ¤ÇÏ´Â °Í°ú °°Àº È¿°ú¸¦ Áö´Ñ´Ù
- -v º¯¼ö = °ª
- ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϱâ Àü¿¡ ¹Ì¸® º¯¼ö¸¦ ÁöÁ¤ÇÏ¿© ÁØ´Ù
- -f ½ºÅ©¸³Æ® ÆÄÀÏ
- ½ºÅ©¸³Æ®¸¦ ÆÄÀÏ¿¡¼ °¡Á®¿Â´Ù
- -f ¿É¼ÇÀ» ¿©·¯¹ø »ç¿ëÇÏ¿© ¿©·¯°³ÀÇ ½ºÅ©¸³Æ® ÆÄÀÏÀ» µ¿½Ã¿¡ ºÒ·¯¿Í
ÁöÁ¤ÇÑ ÆÄÀÏ¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Ù
- ½ºÅ©¸³Æ®
- ÆÐÅÏ { µ¿ÀÛ }
Ä¿¸Çµå ¶óÀο¡¼´Â ÆÐÅÏ, µ¿ÀÛ Àüü¸¦ ´ÜÀÏ µû¿ÈÇ¥·Î ¹´Â´Ù
- ÆÐÅϸ¸ ÀÖ´Â °æ¿ì : ÆÐÅÏ°ú ÀÏÄ¡ÇÏ´Â ·¹ÄÚµå(¶óÀÎ)¸¦ ȸ鿡
Ãâ·ÂÇÑ´Ù
- µ¿ÀÛ¸¸ ÀÖ´Â °æ¿ì : ¸ðµç ·¹ÄÚµå(¶óÀÎ)°¡ µ¿ÀÛÀÇ ´ë»óÀÌ
µÈ´Ù
- ÆÐÅÏ
- /Á¤±ÔÇ¥Çö½Ä/
sed°¡ Áö¿øÇÏÁö ¾Ê´Â +, ?, |, ( ) µîÀÇ ¸ÞŸ¹®ÀÚµµ Áö¿øÇÑ´Ù ¶ÇÇÑ
^, $¸¦ °¢ ÇʵåÀÇ Ã³À½°ú ³¡À» ÀǹÌÇϵµ·Ï »ç¿ëÇÒ ¼öµµ ÀÖ´Ù
- ºñ±³¿¬»ê
¼ýÀÚ ±âÁØ, ¾ËÆĺª ±âÁØ ¸ðµÎ »ç¿ë °¡´ÉÇÏ´Ù
- ÆÐÅÏ ¸ÅĪ ¿¬»ê
~ : ÀÏÄ¡ÇÏ´Â ºÎºÐÀ» ³ªÅ¸³½´Ù
!~ : ÀÏÄ¡ÇÏÁö ¾Ê´Â ºÎºÐÀ» ³ªÅ¸³½´Ù
- BEGIN
ù ¹ø° ·¹Äڵ尡 ÀÐÇôÁö±â Àü¿¡ ¾î¶² µ¿ÀÛÀ» Á¤ÀÇÇÏ¿© »ç¿ëÇÏ°í ½ÍÀ»
¶§ »ç¿ëÇÑ´Ù
- END
¸¶Áö¸· ·¹Äڵ尡 ¸ðµÎ ÀÐÇôÁø ÈÄ ¾î¶² µ¿ÀÛÀ» Á¤ÀÇÇÏ¿© ½ÇÇàÇÏ°í ½ÍÀ»
¶§ »ç¿ëÇÑ´Ù
- µ¿ÀÛ
- µ¿ÀÛÀº ¸ðµÎ { }·Î µÑ·¯½Î¾ß ÇÑ´Ù
- ¿¹Á¦
- goodÀ̶ó´Â ¹®ÀÚ¿À» Æ÷ÇÔÇÏ´Â ¸ðµç ·¹Äڵ带 Ãâ·ÂÇÒ ¶§
/good/
- °¢ ·¹ÄÚµåÀÇ Ã¹ ¹ø° Çʵ带 Ãâ·ÂÇÒ ¶§
{ print $1 }
- goodÀ̶ó´Â ¹®ÀÚ¿À» Æ÷ÇÔÇÏ´Â ·¹ÄÚµåÀÇ Ã¹ ¹ø° Çʵ带 Ãâ·ÂÇÒ
¶§
/good/ { print $1 }
- µÎ °³ ÀÌ»óÀÇ Çʵ带 °¡Áö´Â ·¹Äڵ带 ÀüºÎ Ãâ·ÂÇÒ ¶§(ºñ±³¿¬»ê)
NF > 2
- ÇÑ ¶óÀÎ(\n)À» Çʵå·Î, ºó ¶óÀÎ("")À» ·¹ÄÚµå·Î ±¸ºÐÇÒ
¶§
BEGIN { FS = "\n" ; RS = ""}
- ù ¹ø° Çʵ尡 good¿Í ÀÏÄ¡ÇÏ´Â ·¹Äڵ忡 ´ëÇØ ¼¼ ¹ø° Çʵ带
¸ÕÀú Ãâ·ÂÇÏ°í µÎ ¹ø° Çʵ带 ³ªÁß¿¡ Ãâ·ÂÇÏ°í ½ÍÀ» ¶§
$1 ~ /good/ { print $3 , $2 }
- goodÀ̶ó´Â ¹®ÀÚ¿ÀÌ ¸î °³³ª µé¾î°¡ ÀÖ´ÂÁö °è»êÇÏ¿© ¸¶Áö¸·
ºÎºÐ¿¡¼ Ãâ·ÂÇÏ°í ½ÍÀ» ¶§
/good/ { ++x }
END { print x }
- µÎ ¹ø° Çʵ带 ¸ðµÎ ÇÕÇÏ°í ¸¶Áö¸· ºÎºÐ¿¡¼ µÎ ¹ø° ÇʵåÀÇ
ÃÑÇհ踦 Ãâ·ÂÇÏ°í ½ÍÀ» ¶§
{ total += $2 }
END { print "Total of $2: " ,
total }
- ·¹ÄÚµåÀÇ ±æÀÌ°¡ 20ÀÚ ÀÌÇÏÀÎ °ÍÀ» Ãâ·ÂÇÏ°í ½ÍÀ» ¶§
length($0) < 20
- ³× °³ÀÇ Çʵ带 °¡Áö¸ç goodÀ̶ó´Â ´Ü¾î·Î ½ÃÀÛÇÏ´Â ¸ðµç ·¹Äڵ带
Ãâ·ÂÇÏ°í ½ÍÀ» ¶§
NF == 4 && /^good/
- ºóÁÙÀ» Á¦¿ÜÇÑ ¸ðµç ÁÙÀ» ȸ鿡 Ãâ·ÂÇÑ´Ù
NF > 0
- awk ½Ã½ºÅÛ º¯¼ö
FILENAME |
ÇöÀç ÆÄÀϸí |
$0 |
ÀÔ·Â ·¹ÄÚµå |
FS |
ÀÔ·Â ÇÊµå ±¸ºÐ
µðÆúÆ® : °ø¹é |
$n |
ÀÔ·Â ·¹ÄÚµåÀÇ N¹ø° Çʵå |
NF |
ÇöÀç ·¹ÄÚµå ÇÊµå °¹¼ö |
ARGC |
Ä¿¸Çµå ¶óÀÎÀÇ ÀÎÀÚ °¹¼ö |
NR |
ÇöÀç ·¹ÄÚµå ¹øÈ£ |
ARGV |
Ä¿¸Çµå ¶óÀÎ ÀÎÀÚ¸¦ Æ÷ÇÔÇÏ´Â ¹è¿ |
OFMT |
¼ýÀÚ¿¡ ´ëÇÑ Ãâ·Â Æ÷¸Ë
µðÆúÆ® : %.6g |
ENVIRON |
ȯ°æ º¯¼öµéÀ» ¸ð¾ÆµÐ °ü°èÇü ¹è¿ |
OFS |
Ãâ·Â ÇÊµå ±¸ºÐ
µðÆúÆ® : ºóÁÙ |
FNR |
NR°ú µ¿ÀÏ
´ÜÁö ÇöÀç ÆÄÀÏ¿¡ Àû¿ëµÈ´Ù´Â Á¡ÀÌ ´Ù¸§ |
ORS |
Ãâ·Â ·¹ÄÚµå ±¸ºÐ
µðÆúÆ® : newline |
RSTART |
ÁöÁ¤ÇÑ ¸ÅĪ ¿¬»êÀ» ¸¸Á·ÇÏ´Â ¹®ÀÚ¿ÀÇ ¸Ç ¾ÕºÎºÐ |
RS |
ÀÔ·Â ·¹ÄÚµå ±¸ºÐ
µðÆúÆ® : newline |
RLENGTH |
ÁöÁ¤ÇÑ ¸ÅĪ ¿¬»êÀ» ¸¸Á·ÇÏ´Â ¹®ÀÚ¿ÀÇ ±æÀÌ |
awk ¿¬»êÀÚ
»ê¼ú : =, +=, -=, *=, /=, %= |
Á¶°Ç : ? : |
³í¸® : ||, &&, ! |
ÆÐÅÏ : ~, !~ |
ºñ±³ : <, <=, >, >=, !=,== |
Áõ°¨ : ++, -- |
ÇʵåÂüÁ¶ : $ |
|
Á¦¾î¹®(CÀÇ Á¦¾î¹®°ú °°´Ù)
- break
- continue
- do {½ÇÇà} while (Á¶°Ç)
- exit
- for (°ü°èÇü ¹è¿ÀÇ ¿ä¼Ò) {½ÇÇà}
ÆÞÀÇ foreach¿Í °°´Ù
- if (Á¶°Ç) {½ÇÇà} else {½ÇÇà}
- return
- while
awk ¸í·É¾î
- ¹®ÀÚ¿ ¿¬»ê
- gsub(reg,s)
ÀÔ·Â ¹®ÀÚ¿ÀÇ Àü¹Ý¿¡ °ÉÃÄ Á¤±ÔÇ¥Çö½Ä rÀ» ¹®ÀÚ¿ s·Î ´ëÄ¡ÇÑ´Ù
- gsub(reg,s1,s2)
¹®ÀÚ¿ s2¿¡¼ Á¤±ÔÇ¥Çö½Ä rÀ» s1À¸·Î ´ëÄ¡ÇÑ´Ù
- index(s1,s2)
s1¿¡¼ s2ÀÇ À§Ä¡¸¦ ³Ñ°ÜÁØ´Ù ¸¸¾à ¾ø´Ù¸é 0À» ³Ñ°ÜÁØ´Ù
- length(arg)
ÀÎÀÚÀÇ ±æÀ̸¦ ³Ñ°ÜÁØ´Ù
- match(s,r)
¹®ÀÚ¿ s¿¡¼ Á¤±ÔÇ¥Çö½Ä r°ú ¸ÅĪµÇ´Â ºÎºÐÀÇ À§Ä¡¸¦ ³Ñ°ÜÁØ´Ù
- split(string,array[,seperator])
±¸ºÐÀÚ¸¦ ±âÁØÀ¸·Î(ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é °ø¹é ±âÁØ)Çؼ ÁöÁ¤ÇÑ ¹®ÀÚ¿À»
¹è¿·Î ¸¸µç´Ù ¹è¿[1], ¹è¿[2], .......
- sub(r,s), sub(r,s1,s2)
gsub°ú µ¿ÀÏÇÏ´Ù
´ÜÁö Á¤±ÔÇ¥Çö½Ä°ú ÀÏÄ¡ÇÏ´Â ¹®ÀÚ¿ÀÌ ¿©·¯°³¶óµµ óÀ½ ¹®ÀÚ¿¸¸ ´ëÄ¡µÈ´Ù
- substr(s,m)
¹®ÀÚ¿ s¿¡¼ m¹ø° À§Ä¡¿¡¼ ³¡±îÁöÀÇ ¹®ÀÚ¸¦ ¸®ÅÏÇÑ´Ù
- substr(s,m,n)
¹®ÀÚ¿ s¿¡¼ m¹ø° À§Ä¡¿¡¼ n¹ø°±îÁöÀÇ ¹®ÀÚ¸¦ ¸®ÅÏÇÑ´Ù
- tolower(str)
- toupper(str)
- ¼öÄ¡ ¿¬»ê
- atan2(x,y)
y/xÀÇ arctangent°ªÀ» ¶óµð¾È ´ÜÀ§·Î ³Ñ°ÜÁØ´Ù
- cos(x)
- exp(arg)
- int(arg)
- log(arg)
- rand()
0°ú 1»çÀÌÀÇ ³¼ö¸¦ ¹ß»ýÇÑ´Ù
- sin(x)
- sqrt(arg)
- srand(expr)
ÀÎÀÚ¸¦ °¡Áö°í ³¼ö¸¦ ¹ß»ýÇÑ´Ù
ÀÎÀÚ°¡ ÁÖ¾îÁöÁö ¾ÊÀ¸¸é ½Ã°£À» °¡Áö°í ³¼ö¸¦ ¹ß»ýÇÑ´Ù
- ÀÔÃâ·Â/ÇÁ·Î¼¼½º
- close(filename)
ÁöÁ¤ÇÑ ÆÄÀÏÀ» ´Ý´Â´Ù
- close(cmd)
ÁöÁ¤ÇÑ ¸í·É¾î ÆÄÀÌÇÁ¸¦ ´Ý´Â´Ù
- delete array[element]
ÁöÁ¤ÇÑ ¹è¿ ¿ä¼Ò¸¦ Áö¿î´Ù
- getline()
´ÙÀ½ ·¹Äڵ带 ÀÐ¾î µéÀδÙ
- getline[variable] [< "filename"]
ÆÄÀÏ¿¡¼ ÀоîµéÀδÙ
- next
´ÙÀ½ ·¹ÄÚµå(¶óÀÎ)À» ÀԷ¹޴´Ù
getline()°ú À¯»çÇÏÁö¸¸ /ÆÐÅÏ/µ¿ÀÛÀ» »õ·Ó°Ô ½ÃÀÛÇÑ´Ù
getline()Àº ´ÙÀ½ ¶óÀÎÀ» Àб⸸ ÇÑ´Ù
- print [args] [> "filename"]
ÀÎÀÚ¸¦ Ãâ·ÂÇÑ´Ù
- printf "format" [,expressions] [> "filename"]
Çü½Ä¿¡ ¸ÂÃç Ãâ·ÂÇÑ´Ù
- sprintf (format [,expressions])
printf¿Í ¸¶Âù°¡Áö·Î »ç¿ëÇϴµ¥ °ªÀ» ¸®ÅÏÇϱ⸸ ÇÏ°í Ãâ·ÂÀº ÇÏÁö
¾Ê´Â´Ù
- system(command)
½Ã½ºÅÛ ³»ºÎ ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù
°£´ÜÇÑ ¿¹
- awk ' BEGIN { for (i = 1;i<=7,i++) print int(101*rand())
}'
ȸ鿡 1ÀÌ»ó 100ÀÌÇÏÀÇ ³¼ö ÀÏ°ö °³¸¦ Ãâ·ÂÇÑ´Ù
- ls -l file1 file2 file3 | awk ' {
x += $5 } ; END { print "Total bytes : "
x } '
ÆÄÀϵéÀÇ Å©±â¸¦ ¸ðµÎ ÇÕÇÏ¿© ÃÑ ¹ÙÀÌÆ® ¼ö¸¦ Ç¥½ÃÇÑ´Ù
- awk ' END { print NR } ' filename
ÁöÁ¤ÇÑ ÆÄÀÏÀÇ ¶óÀÎÀÌ ¸î °³ÀÎÁö¸¦ Ç¥½ÃÇÑ´Ù
- awk ' NR % 2 == 0 '
ÁöÁ¤ÇÑ ÆÄÀÏÀÇ Â¦¼ö¹ø°ÀÇ ¶óÀθ¸À» Ãâ·ÂÇØ ÁØ´Ù
Âü°í¼Àû : sed & awk, Dale Daugherty, O'reilly
|
|
Page Loading [ 0.04 Sec ]
SQL Time [ 0 Sec ]
|
|
|