gawk

Autres langues

Langue: ja

Autres versions - même langue

Version: May 17 2000 (openSuse - 09/10/07)

Section: 1 (Commandes utilisateur)

̾¾Î

gawk - ¥Ñ¥¿¡¼¥ó¸¡º÷¡¦½èÍý¸À¸ì

½ñ¼°

awk [ POSIX or GNU style options ] -f program-file [ -- ] file ...
gawk [ POSIX or GNU style options ] [ -- ] program-text file ...

²òÀâ

gawk ¤Ï GNU ¥×¥í¥¸¥§¥¯¥È¤¬¼ÂÁõ¤·¤¿ ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì AWK ¤Î½èÍý·Ï¤Ç¤¹¡£ ËܽèÍý·Ï¤Ï POSIX 1003.2 ¥³¥Þ¥ó¥É¸À¸ì¤È¥æ¡¼¥Æ¥£¥ê¥Æ¥£µ¬Ìó¤ËÄê¤á¤é¤ì¤¿ ¸À¸ì¤ÎÄêµÁ¤ËŬ¹ç¤·¤Æ¤¤¤Þ¤¹¡£ ËܥС¼¥¸¥ç¥ó¤Ï¤Þ¤¿¡¢Aho, Kernighan, Weinberger ¤ÎÃø½ñ The AWK Programming Language ¤Îµ­½Ò¤Ë¤â¤È¤Å¤¤¤Æ¤ª¤ê¡¢ System V Release 4 UNIX ¤Î awk ¤ÎÉղõ¡Ç½¤â´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ gawk ¤Ï¤Þ¤¿¡¢Bell Labs ¤Î¿·µ¡Ç½¤ª¤è¤Ó GNU Æȼ«¤Î³ÈÄ¥¤âÄ󶡤·¤Þ¤¹¡£

¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ï¡¢ gawk ¤Ø¤Î¥ª¥×¥·¥ç¥ó¡¢(¤â¤· -f ¤Þ¤¿¤Ï --file ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð)AWK ¤Î¥×¥í¥°¥é¥à¥Æ¥­¥¹¥È¡¢¤½¤·¤Æ »Ä¤ê¤Î°ú¿ôÎ󤫤é¤Ê¤ê¤Þ¤¹¡£ ¤³¤Î»Ä¤ê¤Î°ú¿ôÎó¤Ï¡¢ÄêµÁºÑ¤ß AWK ÊÑ¿ô ARGC, ARGV ¤òÍѤ¤¤ë¤³¤È¤Ç»²¾È¤Ç¤­¤Þ¤¹¡£

¥ª¥×¥·¥ç¥ó¥Õ¥©¡¼¥Þ¥Ã¥È

gawk ¤Ø¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÅÁÅýŪ¤Ê POSIX ·Á¼°¤Î 1 ʸ»ú¥ª¥×¥·¥ç¥ó¤È¡¢GNU ·Á¼°¤Î ¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£ POSIX ·Á¼°¤Î¥ª¥×¥·¥ç¥ó¤Ïñ°ì¤Î ``-'' ¤Ç»Ï¤Þ¤ê¡¢°ìÊý GNU ·Á¼°¤Î¤â¤Î ¤Ï ``--'' ¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤Ï GNU ¤ÎÆȼ«»ÅÍÍ¤È POSIX ¤Îɬ¿Ü»ÅÍͤÎξÊý¤Ë¤Ä¤¤¤ÆÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

POSIX ɸ½à¤Ë½¾¤¤¡¢ gawk Æȼ«»ÅÍͤΥª¥×¥·¥ç¥ó¤Ï -W ¥ª¥×¥·¥ç¥ó¤Ø¤Î°ú¿ô¤ÇÍ¿¤¨¤Þ¤¹¡£ Ê£¿ô¤Î -W ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¸å½Ò¤Î ¤è¤¦¤Ë¡¢³Æ -W ¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢¤½¤ì¤ËÂбþ¤¹¤ë¥í¥ó¥°¥ª¥×¥·¥ç¥ó ¤¬Â¸ºß¤·¤Þ¤¹¡£¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤Ø¤Î°ú¿ô¤Ï¡¢¶õÇò¤òÆþ¤ì¤º¤Ë = ¤Ç¤Ä¤Ê¤¤¤Ç»ØÄꤹ¤ë¤«¡¢¤½¤Î¼¡¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤È¤·¤ÆÅϤ¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤Ï¡¢Ã»½Ì·Á¤¬°ì°Õ¤Ç¤¢¤ë¸Â¤ê¡¢Ã»½Ì¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥ª¥×¥·¥ç¥ó

gawk ¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò¼õ¤±ÉÕ¤±¤Þ¤¹¡£
-F fs
--field-separator fs ÆþÎÏ¥Õ¥£¡¼¥ë¥É¥»¥Ñ¥ì¡¼¥¿ (ÊÑ¿ô FS ¤ÎÃÍ)¤ò fs ¤È¤·¤Þ¤¹¡£
-v var=val
--assign var=val ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢ÊÑ¿ô var ¤ËÃÍ val ¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ë¤·¤ÆÀßÄê ¤·¤¿ÊÑ¿ô¤Ï¡¢ AWK ¥×¥í¥°¥é¥à¤Î BEGIN ¥Ö¥í¥Ã¥¯Æâ¤Ç¤â»²¾È¤Ç¤­¤Þ¤¹¡£
-f program-file
--file program-file awk ¤Ø¤ÎÂè 1 °ú¿ô¤òÍѤ¤¤ë¤«¤ï¤ê¤Ë¡¢AWK ¥×¥í¥°¥é¥à¤ò¥Õ¥¡¥¤¥ë program-file ¤«¤éÆɤ߹þ¤ß¤Þ¤¹¡£ -f (¤Þ¤¿¤Ï --file ) ¥ª¥×¥·¥ç¥ó¤ÏÊ£¿ô²ó»È ÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-mf NNN
-mr NNN ¤µ¤Þ¤¶¤Þ¤Ê¥á¥â¥ê¤ÎÀ©¸ÂÃͤò NNN ¤ËÀßÄꤷ¤Þ¤¹¡£¥Õ¥é¥° f ¤ÏºÇÂç¥Õ¥£¡¼¥ë¥É¿ô¡¢¥Õ¥é¥° r ¤ÏºÇÂç¥ì¥³¡¼¥É¥µ¥¤¥º¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î 2 ¤Ä¤Î¥Õ¥é¥°¤È -m ¥ª¥×¥·¥ç¥ó¤Ï¡¢Bell Labs ¥Ð¡¼¥¸¥ç¥ó¤Î UNIX awk ¤ËͳÍ褷¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¡¢ gawk ¤Ë¤Ï¤³¤Î¤è¤¦¤ÊÀ©¸Â¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢ gawk ¤Ç¤ÏËÜ¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
-W traditional
-W compat
--traditional
--compat ¸ß´¹ ¥â¡¼¥É¤ÇÆ°ºî¤·¤Þ¤¹¡£¸ß´¹¥â¡¼¥É¤Ç¤Ï¡¢ gawk ¤Ï UNIX awk ¤ÈÅù²Á¤ÊÆ°ºî¤ò¹Ô¤¤¡¢GNU Æȼ«³ÈÄ¥¤Ï²ò¼á¤Ç¤­¤Þ¤»¤ó¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¾¤Î·Á¼°¤è¤ê¤â¡¢ --traditional ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¹¥¤Þ¤ì¤Þ¤¹¡£ ¾Ü¤·¤¯¤Ï¸å½Ò¤Î GNU ³ÈÄ¥ ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-W copyleft
-W copyright
--copyleft
--copyright GNU ¤ÎÃøºî¸¢É½¼¨¤Îû¤¤¥Ð¡¼¥¸¥ç¥ó¤òɸ½à½ÐÎϤؽñ¤­½Ð¤·¡¢ À®¸ù¾õÂ֤ǽªÎ»¤·¤Þ¤¹¡£
-W help
-W usage
--help
--usage û¤á¤Î¥ª¥×¥·¥ç¥ó°ìÍ÷¤òɸ½à½ÐÎϤؽñ¤­½Ð¤·¤Þ¤¹¡£ ( GNU ¥³¡¼¥Ç¥£¥ó¥°µ¬Ìó ¤Ë½¾¤¤¡¢ËÜ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È awk ¤Ï¤¿¤À¤Á¤Ë½ªÎ»¤·¡¢À®¸ù¤ò°ÕÌ£¤¹¤ë½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Þ¤¹¡£)
-W lint
--lint ¾¤Î AWK ¤Ç¤Î½èÍý¤¬µ¿¤ï¤·¤¤¡¢¤¢¤ë¤¤¤Ï¾¤Î AWK ¤È¤Î¸ß´¹À­¤¬¤Ê¤¤¹½Â¤¤¬ ¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤ò¹Ô¤¤¤Þ¤¹¡£
-W lint-old
--lint-old ¥ª¥ê¥¸¥Ê¥ë¤Î Unix awk ¤Ø°Ü¿¢¤Ç¤­¤Ê¤¤¹½Â¤¤Ë´Ø¤·¤Æ·Ù¹ð¤ò¹Ô¤¤¤Þ¤¹¡£
-W posix
--posix ¸ß´¹ ¥â¡¼¥É¤ò¥ª¥ó¤Ë¤·¡¢¹¹¤Ë°Ê²¼¤ÎÀ©Ì󤬲ݤ»¤é¤ì¤Þ¤¹¡£
*
\x ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò²ò¼á¤·¤Þ¤»¤ó¡£
*
FS ¤¬Ã±°ì¤Î¶õÇò¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¶õÇò¤È¥¿¥Ö¤Î¤ß¤¬¥Õ¥£¡¼¥ë¥É¤ò¶èÀڤꡢ ²þ¹Ô¤Ï¥Õ¥£¡¼¥ë¥É¤ò¶èÀÚ¤ê¤Þ¤»¤ó¡£
*
¥­¡¼¥ï¡¼¥É function ¤ËÂбþ¤¹¤ëÊÌ̾ func ¤ò²ò¼á¤·¤Þ¤»¤ó¡£
*
±é»»»Ò ^ ¤ä ^= ¤Î¤«¤ï¤ê¤Ë ** ¤ä **= ¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£
*
fflush() ´Ø¿ô¤ÏÍøÍѤǤ­¤Þ¤»¤ó¡£
-W re-interval
--re-interval Àµµ¬É½¸½¤Î¥Þ¥Ã¥Á¥ó¥°¤Ç ¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½ (interval expressions) ¤òÍ­¸ú¤Ë¤·¤Þ¤¹ (¸å½Ò¤Î Àµµ¬É½¸½ ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£ ¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½¤ÏÅÁÅýŪ¤Ê AWK ¸À¸ì¤Ç¤ÏÍøÍѤǤ­¤Þ¤»¤ó¤Ç¤·¤¿¡£ awk ¤È egrep ¤¬°ì´ÓÀ­¤ò»ý¤Ä¤è¤¦¤Ë¡¢POSIX ɸ½à¤¬¤³¤ì¤é¤òÄɲä·¤Þ¤·¤¿¡£ ¤·¤«¤·¡¢¤³¤ì¤é¤ò»ÈÍѤ¹¤ë¤È¸Å¤¤ AWK ¥×¥í¥°¥é¥à¤òÆ°¤«¤Ê¤¯¤·¤Æ¤·¤Þ¤¦¤Ç¤·¤ç¤¦¤«¤é¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÍ׵ᤵ¤ì¤¿¤È¤­¤È¡¢ --posix ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Ë¡¢ gawk ¤Ï¤³¤ì¤é¤Îµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£
-W source program-text
--source program-text program-text ¤ò AWK ¥×¥í¥°¥é¥à¤È¤·¤ÆÍѤ¤¤Þ¤¹¡£ËÜ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢¥é¥¤¥Ö¥é¥ê²½¤µ¤ì¤¿´Ø¿ô ( -f ¤Þ¤¿¤Ï --file ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ÆÆɤ߹þ¤à) ¤È¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆþÎϤµ¤ì¤¿¥×¥í¥°¥é¥à¤ò ´Êñ¤Ë¹çÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¼ç¤Ë¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ÇÍѤ¤¤é¤ì¤ëÃ浬ÌϤ«¤éÂ絬ÌÏ¤Ê AWK ¥×¥í¥°¥é¥à ¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Þ¤·¤¿¡£
-W version
--version ¼Â¹Ô¤µ¤ì¤¿ gawk ¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɸ½à½ÐÎϤؽñ¤­½Ð¤·¤Þ¤¹¡£¤³¤ì¤Ï¼ç¤Ë¡¢ ¤¢¤Ê¤¿¤¬»ÈÍѤ·¤Æ¤¤¤ë gawk ¥×¥í¥°¥é¥à¤¬ Free Software Foundation ¤¬ÇÛÉÛ¤·¤Æ¤¤ ¤ë¥×¥í¥°¥é¥à¤Î¤¦¤Á¡¢ºÇ¿·¤Î¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤òÃΤë¾ì¹ç¤ËÊØÍø¤Ç¤¹¡£ ¤Þ¤¿¥Ð¥°¥ì¥Ý¡¼¥È¤Î¤È¤­¤Ë¤âÍ­ÍѤǤ¹¡£ (ËÜ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ GNU ¥³¡¼¥Ç¥£¥ó¥°µ¬Ìó ¤Ë½¾¤¤¡¢ awk ¤Ï¤¿¤À¤Á¤Ë½ªÎ»¤·¡¢À®¸ù¤ò°ÕÌ£¤¹¤ë½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Þ¤¹¡£)
--
¥ª¥×¥·¥ç¥ó¤Î½ªÎ»¤ò°ÕÌ£¤·¤Þ¤¹¡£AWK ¥×¥í¥°¥é¥à¤Ë ``-'' ¤«¤é»Ï¤Þ¤ë¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤Ê¤¤ °ú¿ô¤òÍ¿¤¨¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¼ç¤Ë¾¤Î POSIX ¥×¥í¥°¥é¥à¤Î¿¤¯¤¬°ú¿ô¤ËÂФ·¤Æ¹Ô¤¦²ò¼á¤È °ì´ÓÀ­¤òÊݤĤ¿¤á¤Ë¤¢¤ê¤Þ¤¹¡£

¸ß´¹¥â¡¼¥É¤Ç¤Ï¡¢Â¾¤Î¥ª¥×¥·¥ç¥ó¤ÏÉÔÀµ¤Ç¤¢¤ë¤È¤µ¤ì¤ë¤«¡¢Ìµ»ë¤µ¤ì¤Þ¤¹¡£ Ä̾ï¤Î¼Â¹Ô¤Ë¤ª¤¤¤Æ¡¢¥×¥í¥°¥é¥à¥Æ¥­¥¹¥È¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ï¡¢AWK ¥×¥í¥°¥é¥à¤Ë ARGV ÇÛÎó¤òÄ̤·¤ÆÅϤµ¤ì¤Þ¤¹¡£¤³¤ì ¤Ï¡¢AWK ¥×¥í¥°¥é¥à¤ò ``#!'' µ¡¹½¤òÍѤ¤¤Æ¼Â¹Ô¤¹¤ë¾ì¹ç¤ËÆäËÊØÍø¤Ç¤¹¡£

AWK ¥×¥í¥°¥é¥à¤Î¼Â¹Ô

AWK ¥×¥í¥°¥é¥à¤Ï¡¢¥Ñ¥¿¡¼¥ó¤È¥¢¥¯¥·¥ç¥ó¤ÎÁȤÎÎó¤È¡¢(¤â¤·É¬Íפʤé) ´Ø¿ôÄêµÁ¤« ¤é¤Ê¤ê¤Þ¤¹¡£


pattern        { action statements }

function name(parameter list) { statements }

gawk ¤Ï¤Þ¤º¡¢ program-file (Ê£¿ô²Ä) ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¤½¤ì¤«¤é¡¢ --source ¤Î°ú¿ô¤«¤é¡¢¤¢¤ë¤¤¤Ï¡¢ºÇ½é¤Î¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤Ê¤¤°ú¿ô¤«¤é ¥×¥í¥°¥é¥à¤òÆɤ߹þ¤ß¤Þ¤¹¡£ -f ¤È --source ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÊ£¿ô²ó»ØÄê¤Ç¤­¤Þ¤¹¡£ gawk ¤Ï¡¢¤¹¤Ù¤Æ¤Î program-file ¤È¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤷ¤¿¥×¥í¥°¥é¥à¤ò·ë ¹ç¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£¿·¤·¤¯ºî¤Ã¤¿ AWK ¥×¥í¥°¥é¥à¤Ò¤È¤Ä¤Ò¤È¤Ä¤Ë AWK ´Ø¿ô¤Î¥é¥¤¥Ö¥é¥ê¤òËä¤á¹þ¤àɬÍפ¬Ìµ¤¤¤Î¤Ç¡¢¤³¤Îµ¡Ç½¤Ï¥é¥¤¥Ö¥é¥ê¤Î¹½ÃÛ¤Ë ÊØÍø¤Ç¤¹¡£ ¤Þ¤¿¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤷ¤¿¥×¥í¥°¥é¥à¤È¤òº®¹ç¤·¤Æ»È ¤¦¤³¤È¤â²Äǽ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£

´Ä¶­ÊÑ¿ô AWKPATH ¤Ë¤è¤ê¡¢ -f ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ñ¥¹¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ AWKPATH ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¥Ñ¥¹¤Ï ".:/usr/local/share/awk" ¤Ç¤¹¡£ (¼ÂºÝ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï gawk ¤¬¤É¤Î¤è¤¦¤Ë¹½ÃÛ/¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¤«¤Ë°Í¸¤·¤Æ¡¢¤µ¤Þ¤¶¤Þ¤Ê¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£) -f ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë̾¤¬ ``/'' ¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ï¡¢ ¥Ñ¥¹¸¡º÷¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£

gawk ¤Ï¡¢ AWK ¥×¥í¥°¥é¥à¤ò¼¡¤Î½ç½ø¤Ç¼Â¹Ô¤·¤Þ¤¹¡£ ¤Þ¤º¡¢ -v ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿ÊÑ¿ô¤Ø¤ÎÂåÆþ¤ò¤¹¤Ù¤Æ¹Ô¤¤¤Þ¤¹¡£ ¼¡¤Ë¡¢¥×¥í¥°¥é¥à¤òÆâÉô·Á¼°¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£ ¤½¤·¤Æ¡¢(¤â¤·Â¸ºß¤¹¤ì¤Ð) BEGIN ¥Ö¥í¥Ã¥¯ (Ê£¿ô¸ºß²Ä) ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ÇÛÎó ARGV ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò½ç¤ËÆɤߡ¢½èÍý¤ò¹Ô¤¤¤Þ¤¹ (¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¥Õ¥¡¥¤¥ë̾¤¬ »ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢É¸½àÆþÎϤËÂФ·¤Æ½èÍý¤ò¹Ô¤¤¤Þ¤¹)¡£

¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬ var=val ¤È¤¤¤¦·Á¼°¤Ê¤é¤Ð¡¢¤½¤ì ¤ÏÊÑ¿ô¤Ø¤ÎÂåÆþ¤Ç¤¢¤ë¤È²ò¼á¤µ¤ì¤Þ¤¹¡£ÊÑ¿ô var ¤ÏÃÍ val ¤ËÀßÄꤵ¤ì¤Þ¤¹ (¤³¤ì¤Ï¡¢¤¹¤Ù¤Æ¤Î BEGIN ¥Ö¥í¥Ã¥¯¤ò¼Â¹Ô¤·¤¿¤¢¤È¤Ë¹Ô¤ï¤ì¤Þ¤¹)¡£¥³¥Þ¥ó¥É¥é¥¤¥ó ¤Ç¤ÎÊÑ¿ô¤ÎÂåÆþ¤Ï¡¢AWK ¤¬ÆþÎϤò¥Õ¥£¡¼¥ë¥É¤ä¥ì¥³¡¼¥É¤Ëʬ³ä¤¹¤ë¤¿¤á¤Î¥»¥Ñ¥ì¡¼¥¿ ¤ò¼Â¹Ô»þ¤ËÊѹ¹¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£¤Þ¤¿¡¢1 ¤Ä¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ë ÂФ·¿ô²ó½èÍý¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¾ì¹ç¡¢¾õÂÖ¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¤Î¤Ë¤âÊØÍø¤Ç¤¹¡£

ÇÛÎó ARGV ¤ÎÍ×ÁǤ˶õ ("") ¤¬¤¢¤ë¾ì¹ç¡¢ gawk ¤Ï¤½¤ÎÍ×ÁǤò̵»ë¤·¤Þ¤¹¡£

gawk ¤Ï¡¢ÆþÎϤµ¤ì¤¿³Æ¥ì¥³¡¼¥É¤ËÂФ·¤Æ¥Þ¥Ã¥Á¤¹¤ë ¥Ñ¥¿¡¼¥ó ¤¬ AWK ¥×¥í¥°¥é¥àÆâ¤Ë¤¢¤ë¤«¤É¤¦¤«¤ò ¸¡º÷¤·¤Þ¤¹¡£¤½¤Î¥ì¥³¡¼¥É¤Ë¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¿¡¼¥ó¤¹¤Ù¤Æ¤Ë¤Ä¤¤¤Æ¡¢¤½¤ì¤¾¤ìÂбþ¤¹¤ë ¥¢¥¯¥·¥ç¥ó ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¥Ñ¥¿¡¼¥ó¤Ï¡¢¥×¥í¥°¥é¥à¥Æ¥­¥¹¥È¤Ë½Ð¸½¤·¤¿½ç½ø¤Ç¸¡º÷¤µ¤ì¤Þ¤¹¡£

ÆþÎϤ¬¿Ô¤­¤ë¤È¡¢ gawk ¤Ï (¤â¤·¤¢¤ì¤Ð) END ¥Ö¥í¥Ã¥¯ (Ê£¿ô¸ºß²Ä) ¤ò¼Â¹Ô¤·¤Þ¤¹¡£

ÊÑ¿ô¡¢¥ì¥³¡¼¥É¡¢¥Õ¥£¡¼¥ë¥É

AWK ¤Ë¤ª¤±¤ëÊÑ¿ô¤ÏưŪ¡¢¤¹¤Ê¤ï¤Á¡¢ºÇ½é¤Ë»ÈÍѤµ¤ì¤¿¤È¤­¤ËÀ¸À®¤µ¤ì¤Þ¤¹¡£ ÊÑ¿ô¤ÎÃͤϡ¢ÉâÆ°¾®¿ôÅÀ¿ô¤«¡¢Ê¸»úÎ󤫡¢¤¢¤ë¤¤¤ÏξÊý¤Ç¤¹¡£ÊÑ¿ô¤ÎÍѤ¤ ¤é¤ìÊý¤Ë¤è¤êÊѲ½¤·¤Þ¤¹¡£AWK ¤Ç¤Ï¤Þ¤¿¡¢1 ¼¡¸µÇÛÎó¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¿¼¡¸µÇÛÎó ¤â¡¢µ¼»÷Ū¤Ë¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢ÍøÍѲÄǽ¤Ç¤¹¡£¥×¥í¥°¥é¥à¼Â¹Ô³«»Ï»þ¤Ë¡¢ ¤¤¤¯¤Ä¤«¤ÎÄêµÁºÑ¤ßÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ ¤³¤ì¤é¤òɬÍפ˱þ¤¸¤ÆÀâÌÀ¤·¡¢°Ê²¼¤Ç¤Þ¤È¤á¤Þ¤¹¡£

¥ì¥³¡¼¥É

Ä̾¥ì¥³¡¼¥É¤Ï²þ¹Ôʸ»ú¤Ë¤è¤ê¶èÀÚ¤é¤ì¤Þ¤¹¡£ ¥ì¥³¡¼¥É¤Î¶èÀÚ¤ê¤Ï¡¢ÁȤ߹þ¤ßÊÑ¿ô RS ¤ØÃͤòÂåÆþ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢À©¸æ¤Ç¤­¤Þ¤¹¡£ RS ¤¬Ã±°ìʸ»ú¤Î¾ì¹ç¡¢¤½¤Îʸ»ú¤¬¥ì¥³¡¼¥É¤ò¶èÀÚ¤ê¤Þ¤¹¡£ ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ RS ¤ÏÀµµ¬É½¸½¤È¤Ê¤ê¤Þ¤¹¡£ ÆþÎÏÃæ¤Î¥Æ¥­¥¹¥È¤Ç¡¢¤³¤ÎÀµµ¬É½¸½¤Ë¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤¬¥ì¥³¡¼¥É¤ò¶èÀÚ¤ê¤Þ¤¹¡£ ¤·¤«¤·¸ß´¹¥â¡¼¥É¤Ç¤Ï¡¢ ʸ»úÎóÃͤκǽé¤Îʸ»ú¤À¤±¤¬¡¢¥ì¥³¡¼¥É¥»¥Ñ¥ì¡¼¥¿¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ RS ¤¬¶õʸ»úÎó¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢¥ì¥³¡¼¥É¤Ï¶õ¹Ô¤Ç¶èÀÚ¤é¤ì¤Þ¤¹¡£ RS ¤¬¶õʸ»úÎó¤ËÀßÄꤵ¤ì¤¿¤È¤­¤Ë¤Ï¡¢ FS ¤ÎÃͤˤ«¤«¤ï¤é¤º¡¢²þ¹Ôʸ»ú¤Ï¾ï¤Ë¥Õ¥£¡¼¥ë¥É¥»¥Ñ¥ì¡¼¥¿¤È¤Ê¤ê¤Þ¤¹¡£

¥Õ¥£¡¼¥ë¥É

ÆþÎϥ쥳¡¼¥É¤òÆɤ߹þ¤à¤´¤È¤Ë¡¢ gawk ¤Ï¤½¤Î¥ì¥³¡¼¥É¤ò ¥Õ¥£¡¼¥ë¥É ¤Ëʬ³ä¤·¤Þ ¤¹¡£Ê¬³ä¤¹¤ëºÝ¤Ë¤Ï¡¢ÊÑ¿ô FS ¤ÎÃͤ¬¥Õ¥£¡¼¥ë¥É¥»¥Ñ¥ì¡¼¥¿¤È¤·¤Æ»²¾È¤µ¤ì¤Þ¤¹¡£ FS ¤ÎÃͤ¬1ʸ»ú¤Ê¤é¡¢¤½¤Î ʸ»ú¤ò¶­¤Ë¥Õ¥£¡¼¥ë¥É¤¬Ê¬³ä¤µ¤ì¤Þ¤¹¡£ FS ¤¬¶õʸ»úÎó¤Î¾ì¹ç¡¢¸Ä¡¹¤Îʸ»ú¤¬¥Õ¥£¡¼¥ë¥É¥»¥Ñ¥ì¡¼¥¿¤È¤Ê¤ê¤Þ¤¹¡£ ¤¤¤º¤ì¤Ç¤â¤Ê¤¤¾ì¹ç¡¢ FS ¤Ï´°Á´¤ÊÀµµ¬É½¸½¤Ç¤¢¤ë ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£Æüì¤Ê¾ì¹ç¤È¤·¤Æ FS ¤¬Ã±°ì¤Î¶õÇò¤Î¤È¤­¤Ë¤Ï¡¢¥Õ¥£¡¼¥ë¥É¤Ï Ϣ³¤·¤¿¶õÇò¡¦¥¿¥Ö¡¦²þ¹Ô¤Ë¤è¤êʬ³ä¤µ¤ì¤Þ¤¹¡£ (¸å½Ò¤Î --posix ¤ÎµÄÏÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£ ÊÑ¿ô IGNORECASE (²¼µ­»²¾È) ¤Î Ãͤϡ¢ FS ¤¬Àµµ¬É½¸½¤Î¾ì¹ç¥Õ¥£¡¼¥ë¥Éʬ³ä¤Ë¤â±Æ¶Á¤òÍ¿¤¨¤ë¤³¤È¤È¡¢ RS ¤¬Àµµ¬É½¸½¤Î¾ì¹ç¥ì¥³¡¼¥Éʬ³ä¤Ë¤â±Æ¶Á¤òÍ¿¤¨¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

ÊÑ¿ô FIELDWIDTHS ¤ÎÃͤ¬¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿¿ô»ú¤ÎÎó¤Ç¤¢¤ë¾ì¹ç¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Ï ¸ÇÄêŤǤ¢¤ë¤È²ò¼á¤µ¤ì¡¢ gawk ¤Ï»ØÄꤵ¤ì¤¿Éý¤´¤È¤Ë¥Õ¥£¡¼¥ë¥É¤Î ʬ³ä¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢ FS ¤ÎÃͤÏ̵»ë¤µ¤ì¤Þ¤¹¡£ FS ¤Ë¿·¤¿¤ËÃͤòÀßÄê ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤³¤Î FIELDWIDTHS ¤Î¸ú²Ì¤òÂǤÁ¾Ã¤·¡¢É¸½à¤ÎÆ°ºî¤ËÌ᤹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

ÆþÎϥ쥳¡¼¥ÉÃæ¤Î³Æ¥Õ¥£¡¼¥ë¥É¤ÎÃͤϡ¢º¸¤«¤é $1, $2 Åù¤È¤¤¤¦Ì¾Á°¤Ç»²¾È¤Ç¤­¤Þ¤¹¡£ $0 ¤Ï ¥ì¥³¡¼¥ÉÁ´ÂΤǤ¹¡£¥Õ¥£¡¼¥ë¥É¤ËÃͤòÂåÆþ¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¥Õ¥£¡¼¥ë¥É¤ÏÄê¿ô¤À ¤±¤Ç¤Ê¤¯¡¢ÊÑ¿ô¤Ë¤è¤Ã¤Æ»²¾È¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£°Ê²¼¤ÎÎã¤Ç¤Ï¡¢ÆþÎϥ쥳¡¼¥É¤Î 5 ÈÖÌܤΥե£¡¼¥ë¥É¤ÎÃͤò½ÐÎϤ·¤Þ¤¹¡£


n = 5
print $n

ÊÑ¿ô NF ¤Ï¡¢¼«Æ°Åª¤ËÆþÎϥ쥳¡¼¥É¤Î¥Õ¥£¡¼¥ë¥É¤Î¿ô¤ËÀßÄꤵ¤ì¤Þ¤¹¡£

¸ºß¤·¤Ê¤¤¥Õ¥£¡¼¥ë¥É (¤¹¤Ê¤ï¤Á¡¢ $NF ¤è¤ê±¦¤Î¥Õ¥£¡¼¥ë¥É) ¤ò»²¾È¤·¤¿·ë²Ì¤Ï ¶õʸ»úÎó¤Ë¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢Â¸ºß¤·¤Ê¤¤¥Õ¥£¡¼¥ë¥É¤Ø¤ÎÂåÆþ(¤¿¤È¤¨ ¤Ð¡¢ $(NF+2)=5 ) ¤Ï NF ¤ÎÃͤòÁý²Ã¤µ¤»¡¢´Ö¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¶õʸ»ú¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ ¤µ¤é¤Ë $0 ¤ÎÃͤϡ¢¥Õ¥£¡¼¥ë¥É¤ÎÃͤòÊÑ¿ô OFS ¤ÎÃͤǥե£¡¼¥ë¥É¤ò¶èÀڤ俤â¤Î¤È¤·¤ÆºÆ·×»»¤µ¤ì¤Þ¤¹¡£ Éé¤Î¥Õ¥£¡¼¥ë¥ÉÈÖ¹æ¤Ø¤Î»²¾È¤ÏÃ×̿Ū¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£ NF ¤ò¸º¾¯¤µ¤»¤ë¤È¡¢¿·¤·¤¤Ãͤò±Û¤¨¤ë¥Õ¥£¡¼¥ë¥É¤ÎÃͤϼº¤ï¤ì¤Þ¤¹¡£ $0 ¤ÎÃͤϡ¢¥Õ¥£¡¼¥ë¥É¤ÎÃͤòÊÑ¿ô OFS ¤ÎÃͤǥե£¡¼¥ë¥É¤ò¶èÀڤ俤â¤Î¤È¤·¤ÆºÆ·×»»¤µ¤ì¤Þ¤¹¡£

ÁȤ߹þ¤ßÊÑ¿ô

gawk ¤ÎÁȤ߹þ¤ßÊÑ¿ô¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

ARGC
¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Î¸Ä¿ô ( gawk ¤Ø¤Î¥ª¥×¥·¥ç¥ó¤È¡¢¥×¥í¥°¥é¥à»ØÄê¤Ï´Þ¤ß¤Þ ¤»¤ó)¡£
ARGIND
¸½ºß½èÍýÃæ¤Î¥Õ¥¡¥¤¥ë̾¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ëÇÛÎó ARGV ¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¡£
ARGV
¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤ÎÇÛÎó¡£ÇÛÎó¤Ï¡¢ 0 ¤«¤é ARGC - 1 ¤Þ¤Ç¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò »ý¤Á¤Þ¤¹¡£ ARGV ¤ÎÆâÍƤòÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢ÆþÎϤËÍѤ¤¤ë¥Õ¥¡¥¤¥ë̾¤òÊÑ ¹¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
CONVFMT
¿ôÃͤÎÊÑ´¹¥Õ¥©¡¼¥Þ¥Ã¥È¡£¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï "%.6g" ¤Ç¤¹¡£
ENVIRON
¸½ºß¤Î´Ä¶­ÊÑ¿ô¤ÎÃͤ«¤é¤Ê¤ëÇÛÎó¡£ÇÛÎó¤Ï¡¢´Ä¶­ÊÑ¿ô̾¤Ë¤è¤ê¥¤¥ó¥Ç¥Ã¥¯¥¹¤µ¤ì ¡¢³ÆÍ×ÁǤÎÃͤϤ½¤Î´Ä¶­ÊÑ¿ô¤ÎÃͤǤ¹ (Î㤨¤Ð ENVIRON["HOME"] ¤Ï /home/arnold ¤È¤Ê¤ë¤Ç¤·¤ç¤¦)¡£ËÜÇÛÎó¤Ë ÂåÆþ¤ò¹Ô¤Ã¤Æ¤â¡¢ gawk ¤«¤é¥ê¥À¥¤¥ì¥¯¥È¤ä system() ´Ø¿ô¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë ¥×¥í¥°¥é¥à¤Î´Ä¶­¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Þ¤»¤ó(¤³¤ì¤Ï¡¢¾­Íè¤Î gawk ¤Ç¤ÏÊѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹)¡£
ERRNO
getline ¤Î¥ê¥À¥¤¥ì¥¯¥È¡¢ getline ¤Ë¤è¤ëÆɤ߹þ¤ß¡¢ close() ´Ø¿ô¤Î¼Â¹Ô»þ¤Î¤¤¤º¤ì¤«¤Ë¥·¥¹¥Æ¥à¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢ÊÑ¿ô ERRNO ¤Ë¤Ï¥¨¥é¡¼¤ÎÆâÍƤò¼¨¤·¤¿Ê¸»úÎó¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
FIELDWIDTHS
¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿¥Õ¥£¡¼¥ë¥ÉĹ¤Î¥ê¥¹¥È¡£¤â¤·¤³¤ÎÃͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ gawk ¤Ï FS ¤ÎÃͤòÍѤ¤¤Æ¥Õ¥£¡¼¥ë¥Éʬ³ä¤¹¤ë¤«¤ï¤ê¤Ë¡¢¸ÇÄêĹ¤Î¥Õ¥£¡¼¥ë¥Éʬ³ä¤ò¹Ô ¤¤¤Þ¤¹¡£¸ÇÄêĹ¤Î¥Õ¥£¡¼¥ë¥Éʬ³äµ¡Ç½¤Ï¤Þ¤À¼Â¸³Åª¤Ê¤â¤Î¤Ç¡¢ gawk ¤¬²þÎɤµ¤ì¤ë¤Ë½¾¤Ã¤Æ°ÕÌ£¤¬ÊѲ½¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
FILENAME
¸½ºß¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë̾¡£¤â¤·¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÆþÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤ ¤Ê¤±¤ì¤Ð¡¢ FILENAME ¤ÎÃÍ¤Ï ``-'' ¤Ç¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢ BEGIN ¥Ö¥í¥Ã¥¯Æâ¤Ç¤Ï FILENAME ¤Ï̤ÄêµÁ¤Ç¤¹¡£
FNR
¸½ºß¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ëÆþÎϥ쥳¡¼¥ÉÈֹ档
FS
ÆþÎÏ¥Õ¥£¡¼¥ë¥É¥»¥Ñ¥ì¡¼¥¿¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïñ°ì¤Î¶õÇò¤Ç¤¹¡£ ¾å½Ò¤Î ¥Õ¥£¡¼¥ë¥É ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
IGNORECASE
¤¹¤Ù¤Æ¤ÎÀµµ¬É½¸½¤Èʸ»úÎóÁàºî¤Ë¤ª¤¤¤ÆÂçʸ»ú¾®Ê¸»ú¤Î¶èÊ̤òÀ©¸æ¤·¤Þ¤¹¡£¤â¤·¡¢ IGNORECASE ¤¬ 0 ¤Ç¤Ê¤¤ÃͤËÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢Ê¸»úÎóÈæ³Ó¡¢¥ë¡¼¥ë¤Î¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¡¢ FS ¤Ë¤è¤ë¥Õ¥£¡¼¥ë¥Éʬ³ä¡¢ RS ¤Ë¤è¤ë¥ì¥³¡¼¥Éʬ³ä¡¢ ~ ¤È !~ ¤Ë¤è¤ëÀµµ¬É½¸½¥Þ¥Ã¥Á¡¢ÄêµÁºÑ¤ß´Ø¿ô gensub(), gsub(), index(), match(), split(), sub() ¤Ë¤ª¤¤¤ÆÂçʸ»ú¤È¾®Ê¸»ú¤Î°ã¤¤¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢ IGNORECASE ¤¬ 0 °Ê³°¤ÎÃͤʤ顢 /aB/ ¤Ï "ab", "aB", "Ab", "AB" ¤Î¤¤¤º¤ì¤Ë¤â¥Þ¥Ã¥Á¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¾¤ÎAWK ÊÑ¿ô¤ÈƱÍÍ¤Ë IGNORECASE ¤Î½é´üÃÍ¤Ï 0 ¤Ê¤Î¤Ç¡¢Ä̾ï¤Ï Àµµ¬É½¸½¤Èʸ»úÎóÁàºî¤Ë¤ª¤¤¤ÆÂçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Þ¤¹¡£ Unix ¤Ç¤Ï¡¢Âçʸ»ú¾®Ê¸»ú¤ò̵»ë¤¹¤ë¾ì¹ç¡¢ ISO 8859-1 Latin-1 ʸ»ú½¸¹çÁ´¤Æ¤ò»ÈÍѤǤ­¤Þ¤¹¡£ Ãí: 3.0 °ÊÁ°¤Î gawk ¤Ç¤Ï IGNORECASE ¤ÏÀµµ¬É½¸½Áàºî¤Î¤ß¤Ë±Æ¶Á¤·¤Þ¤·¤¿¡£¸½ºß¤Ïʸ»úÎóÈæ³Ó¤Ë¤â±Æ¶Á¤·¤Þ¤¹¡£
NF
¸½ºß¤ÎÆþÎϥ쥳¡¼¥É¤Î¥Õ¥£¡¼¥ë¥É¿ô¡£
NR
¸½ºß¤Þ¤Ç¤ËÆɤ߹þ¤ó¤ÀÆþÎϥ쥳¡¼¥É¿ô¤Î¹ç·×¡£
OFMT
¿ô»ú¤Î½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¡£¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï "%.6g" ¤Ç¤¹¡£
OFS
½ÐÎÏ¥Õ¥£¡¼¥ë¥É¥»¥Ñ¥ì¡¼¥¿¡£¥Ç¥Õ¥©¥ë¥È¤Ï¶õÇò¤Ç¤¹¡£
ORS
½ÐÎϥ쥳¡¼¥É¥»¥Ñ¥ì¡¼¥¿¡£¥Ç¥Õ¥©¥ë¥È¤Ï²þ¹Ô¤Ç¤¹¡£
RS
ÆþÎϥ쥳¡¼¥É¥»¥Ñ¥ì¡¼¥¿¡£¥Ç¥Õ¥©¥ë¥È¤Ï²þ¹Ô¤Ç¤¹¡£
RT
¥ì¥³¡¼¥É¥¿¡¼¥ß¥Í¡¼¥¿¡£ gawk ¤Ï¡¢ RS ¤Ç»ØÄꤵ¤ì¤ëʸ»ú¤Þ¤¿¤ÏÀµµ¬É½¸½¤Ë¥Þ¥Ã¥Á¤¹¤ëÆþÎϥƥ­¥¹¥È¤ò¡¢ RT ¤ËÀßÄꤷ¤Þ¤¹¡£
RSTART
match() ¤Ë¤è¤ê¥Þ¥Ã¥Á¤·¤¿ºÇ½é¤Îʸ»ú¤Î°ÌÃÖ¡£0 ¤Ï¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤·¤Þ¤¹¡£
RLENGTH
match() ¤Ë¤è¤ê¥Þ¥Ã¥Á¤·¤¿Ê¸»úÎó¤ÎŤµ¡£-1 ¤Ï¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤·¤Þ¤¹¡£
SUBSEP
¿¼¡¸µÇÛÎó¤ò¼Â¸½¤¹¤ëºÝ¤ËÍѤ¤¤é¤ì¤ë¡¢ÇÛÎó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò·ë¹ç¤¹¤ëʸ»ú¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï "\034" ¤Ç¤¹¡£

ÇÛÎó

ÇÛÎó¤Ï¡¢¥Ö¥é¥±¥Ã¥È ([ ¤È ]) ¤Î´Ö¤Î¼°¤Ë¤è¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ØÄꤷ¤Þ¤¹¡£¤â¤·¼°¤¬¼° ¤Î¥ê¥¹¥È(¼°, ¼° ...) ¤Ê¤é¡¢¼°¤ÎÃͤòÊÑ¿ô SUBSEP ¤ÎÃͤò¶èÀÚ¤ê¤È¤·¤Æ ·ë¹ç¤·¤¿Ê¸»úÎó¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤·¤ÆÍѤ¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢Â¿¼¡¸µÇÛÎó¤ò ¥·¥ß¥å¥ì¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢

i = "A"; j = "B"; k = "C"
x[i, j, k] = "hello, world\n"

¤Ï¡¢Ê¸»úÎó "hello, world\n" ¤ò¡¢Ê¸»úÎó "A\034B\034C" ¤Ç ¥¤¥ó¥Ç¥Ã¥¯¥¹¤·¤¿ÇÛÎó x ¤ÎÍ×ÁǤËÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£ AWK ¤ÎÇÛÎó¤Ï¤¹¤Ù¤Æ¡¢Ê¸»úÎó¤Ë¤è¤ê¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¹Ô¤¦Ï¢ÁÛÇÛÎó¤Ç¤¹¡£

Æüì¤Ê±é»»»Ò in ¤ò if ¤Þ¤¿¤Ï while ¥¹¥Æ¡¼¥È¥á¥ó¥È¤ÇÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤¢¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹ÃÍ¤Ë ¤ª¤±¤ëÇÛÎó¤ÎÃͤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£


if (val in array)

        print array[val]

¤â¤·¡¢ÇÛÎó¤¬Â¿¼¡¸µ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¤Ê¤é¡¢ (i, j) in array ¤òÍѤ¤¤Þ¤¹¡£

in ¤Ï¤Þ¤¿¡¢ for ¥ë¡¼¥×Ãæ¤Ç¡¢ÇÛÎó¤Î¤¹¤Ù¤Æ¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ÃͤˤĤ¤¤Æ·«¤êÊÖ¤¹¤¿¤á¤Ë ÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

ÇÛÎó¤ÎÍ×ÁǤϡ¢ delete ¥¹¥Æ¡¼¥È¥á¥ó¥È¤òÍѤ¤¤Æºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ delete ¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï¤Þ¤¿¡¢ ź»ú¤ò»ØÄꤻ¤º¤ËÇÛÎó̾¤Î¤ß¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢ ÇÛÎóÁ´ÂΤòºï½ü¤¹¤ë¤¿¤á¤Ë¤â»È¤¨¤Þ¤¹¡£

ÊÑ¿ô¤Î·¿¤ÈÊÑ´¹

ÊÑ¿ô¤È¥Õ¥£¡¼¥ë¥É¤Ï¡¢(ÉâÆ°¾®¿ôÅÀ¿ô¤Î) ¿ôÃͤޤ¿¤Ïʸ»úÎ󡢤¢¤ë¤¤¤ÏξÊý¤È¤·¤Æ °·¤ï¤ì¤Þ¤¹¡£ ÊÑ¿ô¤ÎÃͤ¬¤É¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¤«¤Ï¡¢ÊÑ¿ô¤Î»È¤ï¤ìÊý¤Ë¤è¤Ã¤ÆÊѲ½¤·¤Þ¤¹¡£ ¿ô¼°Ãæ¤ÇÍѤ¤¤é¤ì¤ì¤ÐÊÑ¿ô¤Ï¿ôÃͤȤ·¤Æ²ò¼á¤µ¤ì¡¢Ê¸»úÎó¤È¤·¤ÆÍѤ¤¤é¤ì¤ì ¤Ðʸ»úÎó¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£

ÊÑ¿ô¤ÎÃͤò¶¯À©Åª¤Ë¿ôÃͤǤ¢¤ë¤È²ò¼á¤µ¤»¤¿¤¤¾ì¹ç¤Ï¡¢ÊÑ¿ô¤Ë 0 ¤ò²Ã¤¨¤Þ¤¹¡£ ʸ»úÎó¤È²ò¼á¤µ¤»¤¿¤¤¾ì¹ç¤Ï¶õʸ»úÎó¤ò·ë¹ç¤·¤Þ¤¹¡£

ʸ»úÎó¤ò¿ôÃͤËÊÑ´¹¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢ÊÑ´¹¤Ï atof(3) ¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤¹¡£ ¿ôÃͤòʸ»úÎó¤ËÊÑ´¹¤¹¤ë¾ì¹ç¤Ï¡¢ÊÑ¿ô CONVFMT ¤ÎÃͤò¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤ÆÍѤ¤¤Æ¡¢ sprintf(3) ¤Ë¤è¤ê¹Ô¤ï¤ì¤Þ¤¹¡£AWK ¤Ç¤Ï¤¹¤Ù¤Æ¤Î¿ôÃͤÏÉâÆ°¾®¿ôÅÀ¿ô¤Ç¤¹¤¬¡¢À°¿ôÃͤϾï¤ËÀ°¿ô ¤È¤·¤ÆÊÑ´¹¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ ¤è¤Ã¤Æ¡¢°Ê²¼¤Î¾ì¹ç¡¢


CONVFMT = "%2.2f"

a = 12

b = a ""

ÊÑ¿ô b ¤Ïʸ»úÎóÃÍ "12" ¤È¤Ê¤ê¡¢"12.00" ¤È¤Ï¤Ê¤ê¤Þ¤»¤ó¡£

gawk ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÈæ³Ó¤ò¹Ô¤¤¤Þ¤¹: 2 ¤Ä¤ÎÊÑ¿ô¤¬¿ôÃͤʤé¿ôÃͤȤ·¤ÆÈæ ³Ó¤·¤Þ¤¹¡£¤â¤·ÊÒÊý¤¬¿ôÃͤÇÊÒÊý¤¬`¿ôÃÍ'ʸ»úÎó¤Ê¤é¡¢¿ôÃͤȤ·¤ÆÈæ³Ó¤µ¤ì¤Þ¤¹¡£ ÊÒÊý¤¬¿ôÃͤǤʤ¤Ê¸»úÎó¤Ê¤é¡¢¿ôÃͤΤۤ¦¤¬Ê¸»úÎó¤ËÊÑ´¹¤µ¤ì¡¢Ê¸»úÎó¤È¤·¤Æ Èæ³Ó¤µ¤ì¤Þ¤¹¡£Î¾Êý¤È¤âʸ»úÎó¤Ê¤é¡¢Ê¸»úÎó¤È¤·¤ÆÈæ³Ó¤µ¤ì¤Þ¤¹¡£POSIX ɸ½à¤Ë½¾¤¦ ¤Ê¤é¡¢Î¾Êý¤È¤â¿ôÃÍʸ»úÎó¤Î¾ì¹ç¤Ï¿ôÃͤȤ·¤ÆÈæ³Ó¤·¤Þ¤¹¤¬¡¢¤³¤ì¤ÏÌÀ¤é ¤«¤Ë´Ö°ã¤¤¤Ç¤¹¡£ gawk ¤Ï¤½¤Î¤è¤¦¤ÊÆ°ºî¤ò¤·¤Þ¤»¤ó¡£

"57" ¤Î¤è¤¦¤Êʸ»úÎóÄê¿ô¤Ï¿ôÃÍʸ»úÎó¤Ç¤Ï ¤Ê¤¯ ¡¢Ê¸»úÎóÄê¿ô¤Ç¤¹¡£¡Ö¿ôÃÍʸ»úÎó¡×¤Î³µÇ°¤Ï¡¢¥Õ¥£¡¼¥ë¥É¡¢ getline ¤ÎÆþÎÏ¡¢ FILENAME ¡¢ ARGV ¤ÎÍ×ÁÇ¡¢ ENVIRON ¤ÎÍ×ÁÇ¡¢¿ôÃÍʸ»úÎ󤫤é split() ¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿ÇÛÎó¤ÎÍ×ÁǤËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹¡£ ´ðËÜŪ¤Ê¹Í¤¨Êý¤Ç¤Ï¡¢ ¥æ¡¼¥¶ÆþÎÏ ¡¢¤½¤ì¤â¿ôÃͤ˸«¤¨¤ë¥æ¡¼¥¶ÆþÎϤΤߤ¬¿ôÃͤȤ·¤Æ°·¤ï¤ì¤Þ¤¹¡£

½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô¤Ï¡¢¿ôÃͤȤ·¤Æ¤Ï 0 ¤ò¡¢Ê¸»úÎó¤È¤·¤Æ¤Ï "" (¶õʸ»úÎó) ¤ò »ý¤Á¤Þ¤¹¡£

¥Ñ¥¿¡¼¥ó¤È¥¢¥¯¥·¥ç¥ó

awk ¤Ï¹Ô»Ø¸þ¤Î¸À¸ì¤Ç¤¹¡£¤Þ¤º¥Ñ¥¿¡¼¥ó¡¢¼¡¤Ë¥¢¥¯¥·¥ç¥ó¤¬Â³¤­¤Þ¤¹¡£ ¥¢¥¯¥·¥ç¥ó¤Ï { ¤È } ¤Ç°Ï¤ß¤Þ¤¹¡£¥Ñ¥¿¡¼¥ó¤Þ¤¿¤Ï¥¢¥¯¥·¥ç¥ó¤Ï¾Êά¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤â¤Á¤í¤ó¡¢Î¾Êý¤È¤â ¾Êά¤·¤Æ¤·¤Þ¤Ã¤Æ¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó¡£ ¥Ñ¥¿¡¼¥ó¤¬¤Ê¤¤¾ì¹ç¡¢¥¢¥¯¥·¥ç¥ó¤Ï¤¹¤Ù¤Æ¤ÎÆþÎϥ쥳¡¼¥É¤Ë ÂФ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£¾Êά¤µ¤ì¤¿¥¢¥¯¥·¥ç¥ó¤Ï°Ê²¼¤ÈÅù²Á¤Ç¤¹¡£

{ print }

¤³¤ì¤Ï¥ì¥³¡¼¥ÉÁ´ÂΤò½ÐÎϤ·¤Þ¤¹¡£

¥³¥á¥ó¥È¤Ïʸ»ú ``#'' ¤Ç»Ï¤Þ¤ê¡¢¹ÔËö¤Þ¤Ç³¤­¤Þ¤¹¡£¶õ¹Ô¤Ï¡¢Ê£¿ô¥¹¥Æ¡¼¥È¥á¥ó¥È¤Î ´Ö¤ò¤¢¤±¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Ä̾¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï²þ¹Ô¤Ç½ª¤ï¤ê¤Þ¤¹¡£¤¿¤À¤·¡¢ ¼¡¤Îµ­¹æ¤Ç¹Ô¤¬½ª¤ï¤ë¾ì¹ç¤Ë¤Ï¤³¤Î¸Â¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: ``,'', {, ?, :, &&, || ¡£ do ¤Þ¤¿¤Ï else ¤Ç½ª¤ï¤ë¹Ô¤Ï¡¢¥¹¥Æ¡¼¥È¥á¥ó¥È¤¬¼«Æ°Åª¤Ë°Ê¹ß ¤Î¹Ô¤Ø·Ñ³¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢²þ¹Ô¤ÎľÁ°¤Ë ``\'' ¤òÃÖ¤¯¤³¤È¤Ç¡¢ ¹Ô¤ò·Ñ³¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¤½¤Î²þ¹Ô¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£

``;'' ¤Ç¶èÀڤ뤳¤È¤Ë¤è¤ê¡¢1¹Ô¤ËÊ£¿ô¤Î¥¹¥Æ¡¼¥È¥á¥ó¥È¤òµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ (Ä̾ï¤Î¤è¤¦¤Ë) ¥Ñ¥¿¡¼¥ó-¥¢¥¯¥·¥ç¥óÂÐÃæ¤Î¥¢¥¯¥·¥ç¥óÉô¤Ë¤ª¤±¤ë¥¹¥Æ¡¼¥È¥á¥ó¥È¤À¤±¤Ç¤Ï¤Ê¤¯¡¢ ¥Ñ¥¿¡¼¥ó-¥¢¥¯¥·¥ç¥óÂÐ¥¹¥Æ¡¼¥È¥á¥ó¥È¼«¿È¤â¡¢
 ``;'' ¤Ç¶èÀڤäÆÊ£¿ôÃÖ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥Ñ¥¿¡¼¥ó

AWK ¤Î¥Ñ¥¿¡¼¥ó¤Ï¡¢°Ê²¼¤Î¤¦¤Á¤Î¤¤¤º¤ì¤«¤Ç¤¹¡£

BEGIN

END

/regular expression/

relational expression

pattern && pattern

pattern || pattern

pattern ? pattern : pattern

(pattern)

! pattern

pattern1, pattern2

BEGIN ¤È END ¤ÏÆüì¤Ê¥Ñ¥¿¡¼¥ó¤Ç¤¢¤ê¡¢ÆþÎϤÈÈæ³Ó¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¹¤Ù¤Æ¤Î BEGIN ¥Ñ¥¿¡¼¥ó¤ËÂбþ¤·¤¿¥¢¥¯¥·¥ç¥óÉô¤Ï·ë¹ç¤µ¤ì¡¢ ¤½¤Î¤è¤¦¤Ê¤¹¤Ù¤Æ¤Î¥¢¥¯¥·¥ç¥óÉô¤¬Ã±°ì¤Î BEGIN ¥Ö¥í¥Ã¥¯Ãæ¤Ë¤¢¤ë¤«¤Î¤è¤¦¤Ë°·¤ï¤ì¤Þ¤¹¡£ ·ë¹ç¤µ¤ì¤¿¥¢¥¯¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ß¤ËÀèΩ¤Ã¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£Æ±Íͤˤ¹¤Ù¤Æ¤Î END ¥Ö¥í¥Ã¥¯¤Ï·ë¹ç¤µ¤ì¡¢¤¹¤Ù¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î½èÍý¸å (¤¢¤ë¤¤¤Ï¡¢exit ¥¹¥Æ¡¼¥È¥á¥ó¥È ¤¬¼Â¹Ô¤µ¤ì¤¿¤È¤­) ¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ BEGIN ¤È END ¤Ï¥Ñ¥¿¡¼¥ó¼°Æâ¤Ç¾¤Î¥Ñ¥¿¡¼¥ó¤Èº®¤¼¤Æ»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤Þ¤¿¡¢ BEGIN ¤È END ¥Ñ¥¿¡¼¥ó¤Ï¥¢¥¯¥·¥ç¥óÉô¤ò¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£

/regular expression/ ¥Ñ¥¿¡¼¥ó¤Ç¤Ï¡¢Àµµ¬É½¸½ (regular expression) ¤Ë¥Þ¥Ã¥Á¤·¤¿ÆþÎϥ쥳¡¼¥É¤ËÂФ·¤Æ¥¢¥¯¥·¥ç¥ó ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£Àµµ¬É½¸½¤Ï egrep(1) ¤ÈƱ¤¸¤â¤Î¤¬»È¤¨¤Þ¤¹¡£¤¢¤È¤ËÍ×Ìó¤ò¼¨¤·¤Þ¤¹¡£

´Ø·¸¼°(relational expression) ¤Ç¤Ï¡¢¸å½Ò¤Î¥¢¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤ÎÀá¤Ç¼¨¤¹±é»»»Ò¤òÍѤ¤¤ë¤³¤È¤¬ ¤Ç¤­¤Þ¤¹¡£ ¤³¤ì¤é¤Ï³µ¤·¤Æ¡¢ÆÃÄê¤Î¥Õ¥£¡¼¥ë¥É¤¬Àµµ¬É½¸½¤Ë¥Þ¥Ã¥Á¤¹¤ë¤«¤É¤¦¤«¤ò Ä´¤Ù¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£

±é»»»Ò &&, ||, ! ¤Ï¡¢¤½¤ì¤¾¤ì C ¸À¸ì¤Ç¤ÎÏÀÍýAND¡¢ÏÀÍýOR¡¢ÏÀÍýNOT ¤ÈÅù²Á¤Ç¤¹¡£ C ¸À¸ì¤ÈƱÍͤˡ¢É¾²ÁÃͤ¬³ÎÄꤷ¤¿»þÅÀ¤Ç°Ê¹ß¤Îɾ²Á¤òÂǤÁÀÚ¤ê¤Þ¤¹¡£ ¤³¤ì¤é¤ÏÊ£¿ô¤Î¥Ñ¥¿¡¼¥ó¼°¤ò·ë¹ç¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ ¾¤Î¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ÈƱÍÍ¡¢³ç¸Ì¤Ë¤è¤Ã¤Æɾ²Á½ç½ø¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

?: ±é»»»Ò¤Ï C ¸À¸ì¤Î¤â¤Î¤ÈƱÍͤǤ¹¡£¤â¤·¡¢ºÇ½é¤Î¥Ñ¥¿¡¼¥ó¤¬¿¿¤Ê¤é¡¢ ¥Æ¥¹¥È¤Î¤¿¤á¤Ë 2 ÈÖÌܤΥѥ¿¡¼¥ó¤¬ÍѤ¤¤é¤ì¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 3 ÈÖÌܤΥѥ¿¡¼¥ó¤¬ ÍѤ¤¤é¤ì¤Þ¤¹¡£2 ÈÖÌÜ¤È 3 ÈÖÌܤΥѥ¿¡¼¥ó¤Î¤É¤Á¤é¤«¤À¤±¤¬É¾²Á¤µ¤ì¤Þ¤¹¡£

pattern1, pattern2 ·Á¼°¤Ï Èϰϥѥ¿¡¼¥ó ¤È¸Æ¤Ð¤ì¤Þ¤¹¡£Èϰϥѥ¿¡¼¥ó¤Ï¡¢ pattern1 ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ì¥³¡¼¥É¤«¤é¡¢ pattern2 ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ì¥³¡¼¥É¤Þ¤Ç¤Î¤¹¤Ù¤Æ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£ ¤³¤Î·Á¼°¤Ï¡¢Â¾¤Î¥Ñ¥¿¡¼¥ó¼°¤Èº®¹ç¤·¤ÆÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£

Àµµ¬É½¸½

awk ¤ÎÀµµ¬É½¸½¤Ï egrep ¤Î¤â¤Î¤ÈƱÍͤˡ¢³ÈÄ¥¤µ¤ì¤¿Àµµ¬É½¸½¤Ç¤¹¡£ °Ê²¼¤Î¹½À®Í×ÁǤ«¤éÀ®¤êΩ¤Ã¤Æ¤¤¤Þ¤¹¡£
c
¥á¥¿Ê¸»ú¤Ç¤Ï¤Ê¤¤ c ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\c
¥ê¥Æ¥é¥ëʸ»ú c ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
.
²þ¹Ô¤ò ´Þ¤à Ǥ°Õ¤Î 1 ʸ»ú¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
^
ʸ»úÎó¤ÎÀèƬ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
$
ʸ»úÎó¤Î½ªÃ¼¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
[abc...]
ʸ»ú¥ê¥¹¥È¤Ç¤¢¤ê¡¢ abc... ¤Î¤¤¤º¤ì¤« 1 ʸ»ú¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
[^abc...]
ʸ»ú¥ê¥¹¥È¤ÎµÕ¤Ç¤¢¤ê¡¢ abc... °Ê³°¤Î 1 ʸ»ú¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
r1|r2
Áª¸À: r1 ¤Þ¤¿¤Ï r2 ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
r1r2
·ë¹ç: r1 ¤Îľ¸å¤Ë r2 ¤¬Â³¤¯¤â¤Î¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
r+
r ¤Î 1 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
r*
r ¤Î 0 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
r?
r ¤Î 0 ²ó¤Þ¤¿¤Ï 1 ²ó¤Î·«¤êÊÖ¤·¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
(r)
¥°¥ë¡¼¥×²½: r ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
r{n}
r{n,}
r{n,m} ¥Ö¥ì¡¼¥¹Ãæ¤Ë 1 ¤Ä¤« 2 ¤Ä¤Î¿ôÃͤòµ­½Ò¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ ¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½ ¤òɽ¤·¤Þ¤¹¡£¥Ö¥ì¡¼¥¹Ãæ¤Ë¿ôÃͤ¬ 1 ¤Ä¤¢¤ë¾ì¹ç¡¢Ä¾Á°¤ÎÀµµ¬É½¸½ r ¤¬ n ²ó·«¤êÊÖ¤µ¤ì¤Þ¤¹¡£2 ¤Ä¤Î¿ôÃͤ¬¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ r ¤Ï n ²ó¤«¤é m ²ó·«¤êÊÖ¤µ¤ì¤Þ¤¹¡£1 ¤Ä¤Î¿ôÃͤ˳¤¤¤Æ¥³¥ó¥Þ¤¬¤¢¤ë¾ì¹ç¡¢ r ¤Ï¾¯¤Ê¤¯¤È¤â n ²ó·«¤êÊÖ¤µ¤ì¤Þ¤¹¡£

¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½¤Ï --posix ¤Þ¤¿¤Ï --re-interval ¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤Æ»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Î¤ßÍøÍѲÄǽ¤Ç¤¹¡£

\y
¸ì¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\B
¸ì¤ÎÃæ¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\<
¸ì¤ÎÀèƬ¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\>
¸ì¤ÎËöÈø¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\w
¸ì¤ò¹½À®¤¹¤ëʸ»ú (¥ì¥¿¡¼¡¢¿ôÃÍ¡¢¥¢¥ó¥À¥¹¥³¥¢) ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\W
¸ì¤ò¹½À®¤¹¤ëʸ»ú°Ê³°¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\`
¥Ð¥Ã¥Õ¥¡ (ʸ»úÎó) ¤ÎÀèƬ¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£
\'
¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£

ʸ»úÎóÄê¿ôÃæ¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ (¸å½Ò»²¾È) ¤Ï¡¢ Àµµ¬É½¸½Ãæ¤Ç¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

ʸ»ú¥¯¥é¥¹ ¤Ï POSIX ɸ½à¤ÇƳÆþ¤µ¤ì¤¿¿·µ¡Ç½¤Ç¤¹¡£ ʸ»ú¥¯¥é¥¹¤ÏÆÃÄê¤Î°À­¤ò»ý¤Äʸ»úÎó¥ê¥¹¥È¤ÎÆüìɽ¸½¤Ç¤¹¤¬¡¢ ¼ÂºÝ¤Îʸ»ú½¸¹ç¼«¿È¤Ï¹ñ¤äʸ»ú½¸¹ç¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ê¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£ Î㤨¤Ð¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤Ï¥¢¥á¥ê¥«¹ç½£¹ñ¤È¥Õ¥é¥ó¥¹¤È¤Ç¤Ï°Û¤Ê¤ê¤Þ¤¹¡£

ʸ»ú¥¯¥é¥¹¤¬Í­¸ú¤Ê¤Î¤Ï¡¢ ʸ»ú¥ê¥¹¥È¤Î¥Ö¥é¥±¥Ã¥È¤ÎÃæ¤ÎÀµµ¬É½¸½¤À¤±¤Ç¤¹¡£ ʸ»ú¥¯¥é¥¹¤Ï¡¢ [: ¤È¡¢¥¯¥é¥¹¤òɽ¸½¤¹¤ë¥­¡¼¥ï¡¼¥É¤È¡¢ :] ¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£ °Ê²¼¤Ë POSIX ɽ¸½¤ÇÄêµÁ¤µ¤ì¤ëʸ»ú¥¯¥é¥¹¤ò¼¨¤·¤Þ¤¹¡£

[:alnum:]
¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤È¿ôÃÍʸ»ú¡£
[:alpha:]
¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¡£
[:blank:]
¶õÇò¤È¥¿¥Öʸ»ú¡£
[:cntrl:]
À©¸æʸ»ú¡£
[:digit:]
¿ôÃÍʸ»ú¡£
[:graph:]
°õ»ú²Äǽ¤Ç²Ä»ë¤Êʸ»ú¡£ (¶õÇò¤Ï°õ»ú²Äǽ¤Ç¤¹¤¬¸«¤¨¤Þ¤»¤ó¡£°ìÊý a ¤Ï°õ»ú²Äǽ¤«¤Ä²Ä»ë¤Ç¤¹¡£)
[:lower:]
¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤Î¾®Ê¸»ú¡£
[:print:]
°õ»ú²Äǽ¤Êʸ»ú (À©¸æʸ»ú°Ê³°)¡£
[:punct:]
¶çÆÉÅÀʸ»ú (¥ì¥¿¡¼¡¢¿ôÃÍ¡¢À©¸æʸ»ú¡¢¶õÇòʸ»ú¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤Ê¸»ú)¡£
[:space:]
¶õÇòʸ»ú (¶õÇò¡¢¥¿¥Ö¡¢¥Õ¥©¡¼¥à¥Õ¥£¡¼¥ÉÅù¤Î¾¯¿ô¤Îʸ»ú¤ò»Ø¤¹)¡£
[:upper:]
¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤ÎÂçʸ»ú¡£
[:xdigit:]
16 ¿Ê¿ô¤Î¿ôÃÍ¡£

Î㤨¤Ð¡¢POSIX ɸ½à°ÊÁ°¤Ç¤Ï¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤È¿ôÃͤÎʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ /[A-Za-z0-9]/ ¤È½ñ¤­¤Þ¤·¤¿¡£¤·¤«¤·¡¢Ê̤Υ¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤¬Ê¸»ú½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¾ì¹ç¡¢ ¤½¤ì¤é¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Þ¤»¤ó¡£ POSIX ʸ»ú¥¯¥é¥¹¤Ç¤Ï¡¢ /[[:alnum:]]/ ¤Èµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢Ê¸»ú½¸¹ç¤Î ¤¹¤Ù¤Æ ¤Î¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤È¿ôÃͤ˥ޥåÁ¤·¤Þ¤¹¡£

ʸ»ú¥ê¥¹¥ÈÃæ¤Ë¤Ï¡¢¹¹¤Ë 2 ¤Ä¤ÎÆü쥷¡¼¥±¥ó¥¹¤ò»ÈÍѤǤ­¤Þ¤¹¡£ ¤³¤ì¤é¤Ï¡¢ Ê£¿ô¤Îʸ»ú¤Ë¤è¤Ã¤Æɽ¸½¤µ¤ì¤ëñ°ì¥·¥ó¥Ü¥ë ( ¾È¹çʸ»ú ¤È¸Æ¤Ð¤ì¤Þ¤¹) ¤ò»ý¤Á¡¢ Ê£¿ô¤Îʸ»ú¤¬ »²¾È ¤ä¥½¡¼¥È¤Ë¤ª¤¤¤Æ¤ÏÅù²Á¤Ç¤¢¤ë¤È¤µ¤ì¤ë¡¢Èó ASCII ʸ»ú½¸¹ç¤ËŬÍѤµ¤ì¤Þ¤¹¡£ (Î㤨¤Ð¡¢¥Õ¥é¥ó¥¹¸ì¤Ç¤Ïñ¤Ê¤ë ``e'' ¤È¥°¥ì¡¼¥Ö¥¢¥¯¥»¥ó¥ÈÉÕ¤­¤Î e` ¤È¤Ç¤Ï Åù²Á¤Ç¤¹¡£)

¾È¹ç¥·¥ó¥Ü¥ë
»²¾È¥·¥ó¥Ü¥ë¤ÏÊ£¿ôʸ»ú¤Î»²¾ÈÍ×ÁǤǤ¢¤ê¡¢ [. ¤È .] ¤Ç³ç¤ê¤Þ¤¹¡£ Î㤨¤Ð¡¢ ch ¤¬»²¾ÈÍ×ÁǤξì¹ç¡¢ [[.ch.]] ¤ÏÀµµ¬É½¸½¤È¤Ê¤ê¡¢¤³¤Î»²¾ÈÍ×ÁǤ˥ޥåÁ¤·¤Þ¤¹¡£ °ìÊý¡¢ [ch] ¤Ï c ¤« h ¤Ë¥Þ¥Ã¥Á¤¹¤ëÀµµ¬É½¸½¤Ç¤¹¡£
Åù²Á¥¯¥é¥¹
Åù²Á¥¯¥é¥¹¤Ï Åù²Á¤Êʸ»ú¥ê¥¹¥È¤ò»Ø¤¹¥í¥±¡¼¥ë¸ÇÍ­¤Î̾Á°¤Ç¤¹¡£Ì¾Á°¤Ï [= ¤È =] ¤Ç³ç¤ê¤Þ¤¹¡£ Î㤨¤Ð¡¢Ì¾Á° e ¤Ï ``e,'' ``e`,'', ``e`.'' ¤Î¤¹¤Ù¤Æ¤òɽ¸½¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤³¤Î¾ì¹ç¡¢ [[=e=]] ¤Ï e, e', e` ¤Î¤¤¤º¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ëÀµµ¬É½¸½¤È¤Ê¤ê¤Þ¤¹¡£

¤³¤ì¤é¤Îµ¡Ç½¤Ï±Ñ¸ì°Ê³°¤Î¥í¥±¡¼¥ë¤Ë¤ÆÈó¾ï¤ËÍ­ÍѤǤ¹¡£ gawk ¤¬Àµµ¬É½¸½¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë»ÈÍѤ¹¤ë¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï¡¢ ¸½ºß POSIX ʸ»ú¥¯¥é¥¹¤Î¤ß¤òÍý²ò¤·¡¢ »²¾È¥·¥ó¥Ü¥ë¤ÈÅù²Á¥¯¥é¥¹¤ÏÍý²ò¤·¤Þ¤»¤ó¡£

\y, \B, \<, \>, \w, \W, \`, \' ¤Î±é»»»Ò¤Ï gawk ¸ÇÍ­¤Ç¤¢¤ê¡¢GNU Àµµ¬É½¸½¥é¥¤¥Ö¥é¥ê¤Îµ¡Ç½¤ò¸µ¤Ë¤·¤¿³ÈÄ¥¤Ç¤¹¡£

ÍÍ¡¹¤Ê¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢Àµµ¬É½¸½Ãæ¤Îʸ»ú¤ò gawk ¤¬¤É¤Î¤è¤¦¤Ë²ò¼á¤¹¤ë¤Î¤«¤òÀ©¸æ¤Ç¤­¤Þ¤¹¡£

¥ª¥×¥·¥ç¥ó̵¤·
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ gawk ¤Ï¾å½Ò¤Î POSIX Àµµ¬É½¸½¤ª¤è¤Ó GNU Àµµ¬É½¸½¤Î¤¹¤Ù¤Æ¤Îµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£
--posix
POSIX Àµµ¬É½¸½¤Î¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¡¢GNU ±é»»»Ò¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó (Î㤨¤Ð¡¢ \w ¤Ï¥ê¥Æ¥é¥ë w ¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹)¡£ ¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½¤Ïµö¤µ¤ì¤Þ¤¹¡£
--traditional
ÅÁÅýŪ¤Ê Unix awk ¤ÎÀµµ¬É½¸½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£GNU ±é»»»Ò¡¢¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½¡¢ POSIX ʸ»ú¥¯¥é¥¹ ( [[:alnum:]] ¤Ê¤É) ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£ 8 ¿Ê¤Þ¤¿¤Ï 16 ¿Ê¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Çɽ¸½¤µ¤ì¤ëʸ»ú¤Ï¡¢ Àµµ¬É½¸½¤Î¥á¥¿Ê¸»ú¤òɽ¸½¤¹¤ë¤È¤·¤Æ¤â¡¢ ¥ê¥Æ¥é¥ë¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
--re-interval
--traditional ¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢Àµµ¬É½¸½Ãæ¤Ç¥¤¥ó¥¿¡¼¥Ð¥ëɽ¸½¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£

¥¢¥¯¥·¥ç¥ó

¥¢¥¯¥·¥ç¥ó¤Ï¡¢¥Ö¥ì¡¼¥¹ { ¤È } ¤Ç°Ï¤ß¤Þ¤¹¡£¥¢¥¯¥·¥ç¥ó¤ÏÄ̾ï¤ÎÂåÆþ¡¢¾ò·ïʸ¡¢ ¥ë¡¼¥×ʸÅù¤«¤é¤Ê¤ê¤Þ¤¹¡£±é»»»Ò¡¢À©¸æʸ¡¢Æþ½ÐÎÏʸ¤Ï C ¸À¸ì¤È¤Û¤ÜƱÍͤǤ¹¡£

±é»»»Ò

AWK ¤Ç¤Î±é»»»Ò¤ò¡¢Í¥Àè½ç°Ì¤Î¹â¤¤¤â¤Î¤«¤é½ç¤Ë¼¨¤·¤Þ¤¹¡£

(...)
¥°¥ë¡¼¥×²½¡£
$
¥Õ¥£¡¼¥ë¥É»²¾È¡£
++ --
¥¤¥ó¥¯¥ê¥á¥ó¥È¡¢¥Ç¥¯¥ê¥á¥ó¥È¡£Á°ÃÖ¤â¸åÃÖ¤â²Äǽ¡£
^
¤Ù¤­¾è (** ¤âƱÍͤΰÕÌ£¤Ç»ÈÍѤǤ­¤ë¡£¤Þ¤¿ **= ÂåÆþ±é»»»Ò¤â¸ºß¤¹¤ë)¡£
+ - !
ñ¹à¤Î¥×¥é¥¹¡¢¥Þ¥¤¥Ê¥¹¡¢ÏÀÍýÈÝÄê¡£
* / %
¾è»»¡¢½ü»»¡¢¾ê;¡£
+ -
²Ã»»¤È¸º»»¡£
space
ʸ»úÎó·ë¹ç¡£
< >
<= >=
!= == Ä̾ï¤Î´Ø·¸±é»»»Ò¡£
~ !~
Àµµ¬É½¸½¥Þ¥Ã¥Á¡¢ÈÝÄê¤Î¥Þ¥Ã¥Á¡£ Ãí°Õ: ~ ¤È !~ ¤Îº¸ÊÕ¤ËÀµµ¬É½¸½Äê¿ô (/foo/Åù) ¤òÍѤ¤¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£Àµµ¬É½¸½Äê¿ô¤Ï±¦ÊդˤΤßÃÖ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¼° /foo/ ~ exp ¤Ï (($0 ~ /foo/) ~ exp) ¤ÈÅù²Á¤Ç¤¢¤ê¡¢ ¤³¤ì¤ÏÄ̾ï°Õ¿Þ¤¹¤ë¤â¤Î¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£
in
ÇÛÎó¤Î¥á¥ó¥Ð¡£
&&
ÏÀÍý AND¡£
||
ÏÀÍý OR¡£
?:
C ¸À¸ì¤Î¾ò·ï¼°¤ÈƱÍͤǤ¹¡£ expr1 ? expr2 : expr3¤Î·Á¼°¤Ç»È¤¤¤Þ¤¹¡£¤â¤· expr1 ¤¬¿¿¤Ê¤é¼°¤ÎÃÍ¤Ï expr2 ¤Ë¤Ê¤ê¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð expr3 ¤Ë¤Ê¤ê¤Þ¤¹¡£ expr2 ¤« expr3 ¤Î¤¦¤ÁÊÒÊý¤Î¤ß¤¬É¾²Á¤µ¤ì¤Þ¤¹¡£
= += -=
*= /= %= ^=
ÂåÆþ¡£ÀäÂÐÂåÆþ (var = value) ¤È±é»»»ÒÂåÆþ (¾¤Î·Á¼°) ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

À©¸æ¥¹¥Æ¡¼¥È¥á¥ó¥È

À©¸æ¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£


if (condition) statement [ else statement ]

while (condition) statement 

do statement while (condition)

for (expr1; expr2; expr3) statement

for (var in array) statement

break

continue

delete array[index]

delete array

exit [ expression ]

{ statements }


Æþ½ÐÎÏ¥¹¥Æ¡¼¥È¥á¥ó¥È

Æþ½ÐÎÏ¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

close(file)
¥Õ¥¡¥¤¥ë (¤Þ¤¿¤Ï¥Ñ¥¤¥×¡¢²¼µ­»²¾È) ¤ò¥¯¥í¡¼¥º¤·¤Þ¤¹¡£
getline
¼¡¤Î¥ì¥³¡¼¥É¤ò $0 ¤ËÆɤ߹þ¤ß¤Þ¤¹¡£ NF, NR, FNR ¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
getline <file
¥Õ¥¡¥¤¥ë file ¤«¤é¼¡¤Î¥ì¥³¡¼¥É¤ò $0 ¤ËÆɤ߹þ¤ß¤Þ¤¹¡£ NF ¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
getline var
¼¡¤Î¥ì¥³¡¼¥É¤òÊÑ¿ô var ¤ËÆɤ߹þ¤ß¤Þ¤¹¡£ NR, FNR ¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
getline var <file
¥Õ¥¡¥¤¥ë file ¤«¤é¼¡¤Î¥ì¥³¡¼¥É¤òÊÑ¿ô var ¤ËÆɤ߹þ¤ß¤Þ¤¹¡£
next
¸½ºß¤Î¥ì¥³¡¼¥É¤ËÂФ¹¤ë½èÍý¤ò½ªÎ»¤·¡¢¼¡¤Î¥ì¥³¡¼¥É¤òÆɤ߹þ¤ß¡¢AWK ¥×¥í¥° ¥é¥à¤ÎºÇ½é¤Î¥Ñ¥¿¡¼¥ó¤«¤é½èÍý¤ò³«»Ï¤·¤Þ¤¹¡£ C ¸À¸ì¤Î continue ¤ÈÎà»÷¤·¤¿°ÕÌ£¤ò»ý¤Á¤Þ¤¹¡£ ¤â¤·¡¢ÆþÎϥǡ¼¥¿¤Î½ªÃ¼¤Ë㤷¤¿¾ì¹ç¡¢ END ¥Ö¥í¥Ã¥¯¤¬Â¸ºß¤¹¤ì¤Ð¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
nextfile
¸½ºß¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë½èÍý¤ò½ªÎ»¤·¡¢¼¡¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤é¥ì¥³¡¼¥É¤ò Æɤ߹þ¤ß¤Þ¤¹¡£ FILENAME ¤È ARGIND ¤¬¹¹¿·¤µ¤ì¡¢ FNR ¤¬ 1 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢AWK ¥×¥í¥°¥é¥à¤Î ºÇ½é¤Î¥Ñ¥¿¡¼¥ó¤«¤é½èÍý¤¬³«»Ï¤µ¤ì¤Þ¤¹¡£ÆþÎϥǡ¼¥¿¤Î½ªÃ¼¤Ë㤷¤¿¤È¤­¤Ï¡¢ ¤â¤·Â¸ºß¤¹¤ì¤Ð¡¢ END ¥Ö¥í¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ Ãí: °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î gawk ¤Ç¤Ï next file ¤È 2 ¸ì¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ÎÍÑË¡¤Ï¤Þ¤Àǧ¼±¤µ¤ì¤Þ¤¹¤¬¡¢ ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÀ¸¤¸¤µ¤»¤Þ¤¹¤·¡¢ºÇ½ªÅª¤Ë¤Ï̵¤¯¤Ê¤ëɽ¸½¤Ç¤¹¡£
print
¸½ºß¤Î¥ì¥³¡¼¥É¤ò½ÐÎϤ·¤Þ¤¹¡£ ½ÐÎϥ쥳¡¼¥É¤Ï ORS ÊÑ¿ô¤ÎÃͤˤƽªÃ¼¤µ¤ì¤Þ¤¹¡£
print expr-list
¼°¤ò½ÐÎϤ·¤Þ¤¹¡£³Æ¼°¤Ï OFS ¤ÎÃͤǶèÀÚ¤é¤ì¤Þ¤¹¡£½ÐÎϤµ¤ì¤ë¥ì¥³¡¼¥É¤ÎºÇ¸å¤Ë ¤Ï ORS ¤ÎÃͤ¬Éղ䵤ì¤Þ¤¹¡£
print expr-list >file
¼°¤ò¥Õ¥¡¥¤¥ë file ¤Ë½ÐÎϤ·¤Þ¤¹¡£³Æ¼°¤Ï OFS ¤ÎÃͤǶèÀÚ¤é¤ì¤Þ¤¹¡£½ÐÎϤµ¤ì¤ë¥ì¥³¡¼¥É¤Î ºÇ¸å¤Ë¤Ï ORS ¤ÎÃͤ¬Éղ䵤ì¤Þ¤¹¡£
printf fmt, expr-list
½ñ¼°ÉÕ¤­½ÐÎϤǤ¹¡£
printf fmt, expr-list >file
¥Õ¥¡¥¤¥ë file ¤Ø¤Î½ñ¼°ÉÕ¤­½ÐÎϤǤ¹¡£
system(cmd-line)
¥³¥Þ¥ó¥É cmd-line ¤ò¼Â¹Ô¤·¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Þ¤¹ (POSIX ¤ËÂбþ¤·¤Ê¤¤ ¥·¥¹¥Æ¥à¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹)¡£
fflush([file])
¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë½ÐÎÏ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ñ¥¤¥× file ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤ò¥Õ¥é¥Ã¥·¥å¤·¤Þ¤¹¡£ file ¤ò»ØÄꤷ¤Ê¤¤¤È¡¢É¸½à½ÐÎϤ¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤Þ¤¹¡£ file ¤¬¶õʸ»úÎó¤Î¾ì¹ç¡¢¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤È¥Ñ¥¤¥×¤Î¥Ð¥Ã¥Õ¥¡¤ò ¥Õ¥é¥Ã¥·¥å¤·¤Þ¤¹¡£

¤½¤Î¾¤Î·Á¼°¤Î¥ê¥À¥¤¥ì¥¯¥È¤È¤·¤Æ°Ê²¼¤Î¤â¤Î¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ print ¤È printf ¤ËÂФ·¤Æ¡¢ >> file ¤ò»ØÄꤹ¤ë¤È½ÐÎϤϥե¡¥¤¥ë file ¤ËÄɲ䵤졢 | command ¤Ï½ÐÎϤò¥Ñ¥¤¥×¤ËÂФ·¤Æ¹Ô¤¤¤Þ¤¹¡£Æ±Íͤˡ¢ command| getline ¤Ï¥³¥Þ¥ó¥É¤Î½ÐÎϤ«¤é getline ¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ getline ¤Ï¥Õ¥¡¥¤¥ë½ªÃ¼¤Ç¤Ï 0 ¤ò¡¢¥¨¥é¡¼»þ¤Ë¤Ï -1 ¤òÊÖ¤·¤Þ¤¹¡£

Ãí: ¥ë¡¼¥×Ãæ¤Ç getline ¤Ø¥Ñ¥¤¥×½ñ¤­¹þ¤ß¤¹¤ë¾ì¹ç¤Þ¤¿¤Ï print ¤« printf ¤«¤é¥Ñ¥¤¥×Æɤ߼è¤ê¤¹¤ë¾ì¹ç¡¢ ¥³¥Þ¥ó¥É¤Î¿·¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤¹¤ë¤¿¤á¤Ë close() ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬É¬ÍפǤ¹¡£ ¥Ñ¥¤¥×¤¬ EOF ¤òÊÖ¤¹¤È¤­¤Ç¤â¡¢AWK ¤Ï¼«Æ°Åª¤Ë¤Ï¥Ñ¥¤¥×¤òÊĤ¸¤Þ¤»¤ó¡£

printf ¥¹¥Æ¡¼¥È¥á¥ó¥È

AWK ¤Ç¤Î printf ¥¹¥Æ¡¼¥È¥á¥ó¥È¤È sprintf() ´Ø¿ô (¸å½Ò»²¾È) ¤Ï¡¢°Ê²¼¤ÎÊÑ´¹»ØÄê½ñ¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤¹¡£

%c
1 ¤Ä¤Î ASCII ʸ»ú¡£ %c ¤ËÂбþ¤¹¤ë°ú¿ô¤¬¿ôÃͤʤ顢¤½¤ÎÃͤò ASCII ¥³¡¼¥É¤È¤ß¤Ê¤· ¤Æʸ»ú¤ËÊÑ´¹¤·¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢°ú¿ô¤Ïʸ»úÎó¤Ç¤¢¤ë¤È²ò¼á¤µ¤ì¡¢¤½¤Î 1 ʸ»úÌܤ¬½ÐÎϤµ¤ì¤Þ¤¹¡£
%d
%i
10 ¿Ê¿ô (À°¿ôÉôʬ)¡£
%e
%E [-]d.dddddde[+-]dd ¤È¤¤¤¦·Á¼°¤ÎÉâÆ°¾®¿ôÅÀ¿ô¡£ %E ·Á¼°¤Ç¤Ï e ¤ÎÂå¤ê¤Ë E ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£
%f
[-]ddd.dddddd ¤È¤¤¤¦·Á¼°¤ÎÉâÆ°¾®¿ôÅÀ¿ô¡£
%g
%G %e ¤È %f ¤Îû¤¤Êý¤Î·Á¼°¤ÎÉâÆ°¾®¿ôÅÀ¿ô¡£Í¾·×¤Ê 0 ¤Ï¾Êά¤µ¤ì¤Þ¤¹¡£ %G ·Á¼°¤Ç¤Ï %e ¤ÎÂå¤ê¤Ë %E ¤ò»ÈÍѤ·¤Þ¤¹¡£
%o
Éä¹æ¤Ê¤·¤Î 8 ¿Ê¿ô (À°¿ô)¡£
%u
Éä¹æ¤Ê¤·¤Î 10 ¿Ê¿ô (À°¿ô)¡£
%s
ʸ»úÎó¡£
%x
%X Éä¹æ¤Ê¤·¤Î 16 ¿Ê¿ô (À°¿ô)¡£ %X ·Á¼°¤Ç¤Ï¡¢ abcdef ¤ÎÂå¤ê¤Ë ABCDEF ¤òÍѤ¤¤Þ¤¹¡£
%%
ñ°ì¤Îʸ»ú % ¡£°ú¿ô¤Ï»ÈÍѤ·¤Þ¤»¤ó¡£

% ¤È¾åµ­¤ÎÀ©¸æʸ»ú¤È¤Î´Ö¤Ë¥ª¥×¥·¥ç¥Ê¥ë¤ÊÄɲäΥѥé¥á¡¼¥¿¤òÃÖ¤¯ ¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£°Ê²¼¤Ë¤½¤ì¤é¤ò¼¨¤·¤Þ¤¹¡£

-
º¸´ó¤»¡£
¶õÇò
¿ôÃÍÊÑ´¹¤Ë¤ª¤¤¤Æ¡¢Àµ¤ÎÃͤΥץì¥Õ¥£¥Ã¥¯¥¹¤Ï¶õÇò¤È¤Ê¤ê¡¢ Éé¤ÎÃͤΥץì¥Õ¥£¥Ã¥¯¥¹¤Ï¥Þ¥¤¥Ê¥¹µ­¹æ¤È¤Ê¤ê¤Þ¤¹¡£
+
¥×¥é¥¹µ­¹æ¤ÏÉý½¤Àµ»Ò (¸å½Ò) ¤ÎÁ°¤Ë»ÈÍѤ·¡¢ À°·Á¤µ¤ì¤ë¥Ç¡¼¥¿¤¬Àµ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢ ¿ôÃÍÊÑ´¹¤ËÂФ·¤Æ¾ï¤ËÉä¹æ¤òÉÕ¤±¤ë¤³¤È¤ò»Ø¼¨¤·¤Þ¤¹¡£ + ¤Ï¶õÇò½¤Àµ»Ò¤ËÍ¥À褷¤Þ¤¹¡£
#
¤¢¤ëÀ©¸æ¥ì¥¿¡¼¤ËÂФ·¤Æ¡ÖÊ̤ηÁ¼°¡×¤ò»ÈÍѤ·¤Þ¤¹¡£ %o ¤ËÂФ·¤Æ¤ÏÀè¹Ô¤¹¤ë 0 ¤òÍ¿¤¨¡¢ %x ¤È %X ¤ËÂФ·¤Æ¤ÏÈó 0 ¤Î·ë²Ì¤ËÂФ·¤ÆÀè¹Ô¤¹¤ë 0x ¤È 0X ¤òÍ¿¤¨¤Þ¤¹¡£ %e, %E, %f ¤ËÂФ·¤Æ¤Ï·ë²Ì¤Ë¾ï¤Ë¾®¿ôÅÀ¤ò´Þ¤á¤Þ¤¹¡£ %g, %G ¤ËÂФ·¤Æ¤Ï·ë²Ì¤ÎËöÈø¤«¤é 0 ¤ò¼è¤ê½ü¤­¤Þ¤»¤ó¡£
0
ÀèƬ¤Î 0 (¥¼¥í) ¤Ï¥Õ¥é¥°¤È¤·¤ÆÆ°ºî¤·¡¢ ½ÐÎϤò¶õÇò¤Ç¤Ï¤Ê¤¯ 0 ¤Ç¥Ñ¥Ç¥£¥ó¥°¤¹¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹¡£ ¤³¤ì¤ÏÈó¿ôÃͤνÐÎϽñ¼°¤ËÂФ·¤Æ¤âŬÍѤµ¤ì¤Þ¤¹¡£ ¤³¤Î¥Õ¥é¥°¤¬Í­¸ú¤Ê¤Î¤Ï¡¢¥Õ¥£¡¼¥ë¥ÉÉý¤¬°õ»ú¤µ¤ì¤ëÃͤÎÉý¤è¤ê¹­¤¤¤È¤­¤À¤±¤Ç¤¹¡£
width
¥Õ¥£¡¼¥ë¥É¤¬»ØÄꤷ¤¿Éý width ¤Ë¤Ê¤ë¤è¤¦¤Ë¥Ñ¥Ç¥£¥ó¥°¤µ¤ì¤Þ¤¹¡£¥Õ¥£¡¼¥ë¥É¤ÏÄ̾ï¶õÇò¤Ç¥Ñ¥Ç¥£¥ó¥°¤µ¤ì¤Þ¤¹¡£ 0 ¥Õ¥é¥°¤¬»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ë¤Ï 0 ¤Ç¥Ñ¥Ç¥£¥ó¥°¤µ¤ì¤Þ¤¹¡£
.prec
°õ»ú¤Ë¤ª¤¤¤Æ»ÈÍѤ¹¤ëÀºÅÙ¤ò¿ôÃͤǻØÄꤷ¤Þ¤¹¡£ %e, %E, %f ¤Î½ñ¼°¤ËÂФ·¤Æ¤Ï¡¢¾®¿ôÅÀ¤Î±¦Â¦¤Ë°õ»ú¤µ¤ì¤ë¿ô»ú¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹¡£ %g, %G ¤Î½ñ¼°¤ËÂФ·¤Æ¤Ï¡¢²¾¿ôÉô¤ÎºÇÂç¿ô¤ò»ØÄꤷ¤Þ¤¹¡£ %d, %o, %i, %u, %x, %X ¤Î½ñ¼°¤ËÂФ·¤Æ¤Ï¡¢°õ»ú¤µ¤ì¤ë¿ô»ú¤ÎºÇ¾®¿ô¤ò»ØÄꤷ¤Þ¤¹¡£ ʸ»úÎó¤ËÂФ·¤Æ¤Ï¡¢°õ»ú¤µ¤ì¤ëʸ»úÎ󤫤é¤È¤ê¤À¤µ¤ì¤ëºÇÂç¤Îʸ»ú¿ô¤ò»ØÄꤷ¤Þ¤¹¡£

ANSI C ¤Î printf() ¤ÎưŪ¤ÊÉý width ¤ÈÀºÅÙ prec ¤Î»ØÄ굡ǽ¤¬»ÈÍѤǤ­¤Þ¤¹¡£ Éý ¤Þ¤¿¤Ï ÀºÅÙ ¤Î»ØÄêÉôʬ¤Ë * ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¤½¤ÎÃͤò printf ¤Þ¤¿¤Ï sprintf() ¤Ø¤Î°ú¿ô¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡£

Æüì¥Õ¥¡¥¤¥ë̾

print ¤ä printf ¤Ç½ñ¤­¹þ¤ß¤È¤­¤Ç¤â¡¢ getline ¤Ç¥Õ¥¡¥¤¥ë¤«¤éÆɤ߼è¤ë¤È¤­¤Ç¤â¡¢ Æþ½ÐÎÏ¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¾ì¹ç¡¢ gawk ¤ÏÆâÉôŪ¤ÊÆüì¤Ê¥Õ¥¡¥¤¥ë̾¤ò²ò¼á¤·¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë̾¤Ë¤è¤ê¡¢¿Æ¥×¥í¥»¥¹ (Ä̾ï¤Ï¥·¥§¥ë¤Ç¤¹) ¤«¤é¼õ¤±·Ñ¤¤¤À ¥ª¡¼¥×¥ó¾õÂ֤Υե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÍѤ¤¤ÆÆþ½ÐÎϤò¹Ô¤Ã¤¿¤ê¡¢¼Â¹ÔÃæ¤Î gawk ¥×¥í¥»¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Æüì¥Õ¥¡¥¤¥ë̾¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

/dev/pid
¸½ºß¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID (10 ¿Ê¿ô¤Ç¡¢ºÇ¸å¤Ë²þ¹Ô¤¬ÉÕ¤­¤Þ¤¹) ¤ò Æɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
/dev/ppid
¸½ºß¤Î¥×¥í¥»¥¹¤Î¿Æ¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID (10 ¿Ê¿ô¤Ç¡¢ºÇ¸å¤Ë²þ¹Ô¤¬ÉÕ¤­¤Þ¤¹) ¤ò Æɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
/dev/pgrpid
¸½ºß¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID (10 ¿Ê¿ô¤Ç¡¢ºÇ¸å¤Ë²þ¹Ô¤¬ÉÕ¤­¤Þ¤¹) ¤òÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
/dev/user
¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤळ¤È¤Ç¡¢²þ¹Ô¤Ç½ª¤ï¤ëñ°ì¤Î¥ì¥³¡¼¥É¤¬ÆÀ¤é¤ì¤Þ¤¹¡£ ³Æ¥Õ¥£¡¼¥ë¥É¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤Þ¤¹¡£ $1 ¤Ï getuid(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÃÍ¡¢ $2 ¤Ï geteuid(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÃÍ¡¢ $3 ¤Ï getgid(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÃÍ¡¢ $4 ¤Ï getegid(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÃͤǤ¹¡£¤â¤·¡¢¤µ¤é¤Ë¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ì¤Ð¡¢ ¤½¤ì¤Ï getgroups(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤¹¥°¥ë¡¼¥× ID ¤Î¥ê¥¹¥È¤Ç¤¹¡£ Á´¤Æ¤Î¥·¥¹¥Æ¥à¤ÇÊ£¿ô¤Î¥°¥ë¡¼¥×¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
/dev/stdin
ɸ½àÆþÎÏ¡£
/dev/stdout
ɸ½à½ÐÎÏ¡£
/dev/stderr
ɸ½à¥¨¥é¡¼½ÐÎÏ¡£
/dev/fd/n
¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ n ¤ËÂбþ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡£

¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¤Ë¤Ï¡¢°Ê²¼¤ÎÊýË¡¤¬ÊØÍø¤Ç¤¹¡£

print "You blew it!" > "/dev/stderr"

¤â¤·¤³¤Îµ¡Ç½¤¬Ìµ¤«¤Ã¤¿¤é¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤·¤«¤Ê¤¤¤È¤³¤í¤Ç¤¹¡£

print "You blew it!" | "cat 1>&2"

¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë»ØÄê¤Ç»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¿ôÃÍ´Ø¿ô

AWK ¤Ï°Ê²¼¤ÎÄêµÁºÑ¤ß¿ôÃÍ´Ø¿ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£

atan2(y, x)
y/x ¤ÎµÕÀµÀܤò¥é¥¸¥¢¥ó¤ÇÍ¿¤¨¤Þ¤¹¡£
cos(expr)
expr ¤Î;¸¹¤ò¥é¥¸¥¢¥ó¤ÇÍ¿¤¨¤Þ¤¹¡£
exp(expr)
»Ø¿ô´Ø¿ô¡£
int(expr)
À°¿ô¤Ø¤ÎÀڼΤơ£
log(expr)
¼«Á³Âпô¡£
rand()
0 ¤«¤é 1 ¤Î´Ö¤ÎÍð¿ô¤òÍ¿¤¨¤Þ¤¹¡£
sin(expr)
expr ¤ÎÀµ¸¹¤ò¥é¥¸¥¢¥ó¤ÇÍ¿¤¨¤Þ¤¹¡£
sqrt(expr)
Ê¿Êýº¬¡£
srand([expr])
expr ¤ÎÃͤòÍð¿ôÀ¸À®´Ø¿ô¤Î¼ï¤È¤·¤ÆÍѤ¤¤Þ¤¹¡£¼°¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ »þ¹ï¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£Ä¾Á°¤Î¼ï¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£

ʸ»úÎó´Ø¿ô

gawk ¤Ï°Ê²¼¤ÎÄêµÁºÑ¤ßʸ»úÎó´Ø¿ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£

gensub(r, s, h [, t])
ÂоÝʸ»úÎó t ¤«¤éÀµµ¬É½¸½ r ¤Î¥Þ¥Ã¥Á¤òõ¤·¤Þ¤¹¡£ h ¤¬ g ¤Þ¤¿¤Ï G ¤Ç³«»Ï¤¹¤ëʸ»úÎó¤Î¾ì¹ç¡¢¥Þ¥Ã¥Á¤¹¤ë r ¤ò¤¹¤Ù¤Æ s ¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£ ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ h ¤Ï²¿ÈÖÌܤΠr ¤Î¥Þ¥Ã¥Á¤òÃÖ¤­´¹¤¨¤ë¤Î¤«¤ò¼¨¤·¤Þ¤¹¡£ t ¤¬Í¿¤¨¤é¤ì¤Ê¤¤¾ì¹ç¡¢Âå¤ê¤Ë $0 ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ ÃÖ´¹¥Æ¥­¥¹¥È s ¤Ç¤Ï¡¢¥·¡¼¥±¥ó¥¹ \n ¤¿¤À¤· n ¤Ï 1 ¤«¤é 9 ¤Þ¤Ç¤Î¿ô»ú¤ò»ÈÍѤ·¤Æ¡¢ n ÈÖÌܤ˥ޥåÁ¤·¤¿³ç¸ÌÉÕ¤­¥µ¥Ö¼°¤ò¼¨¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥·¡¼¥±¥ó¥¹ \0 ¤Ïʸ»ú & ¤ÈƱÍÍ¡¢¥Þ¥Ã¥Á¤·¤¿¥Æ¥­¥¹¥ÈÁ´ÂΤòɽ¤·¤Þ¤¹¡£ sub() ¤ä gsub() ¤È¤Ï°Û¤Ê¤ê¡¢½¤Àµ¤µ¤ì¤¿Ê¸»úÎ󤬴ؿô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¡¢ ¸µ¤ÎÂоݥƥ­¥¹¥È¤ÏÊѹ¹¤µ¤ì ¤Þ¤»¤ó ¡£
gsub(r, s [, t])
ʸ»úÎó t Ãæ¤ÇÀµµ¬É½¸½ r ¤Ë¥Þ¥Ã¥Á¤·¤¿Éôʬ¤ò¤¹¤Ù¤Æ s ¤ËÃÖ´¹¤·¤Þ¤¹¡£ÃÖ´¹¤Î¸Ä¿ô¤òÊÖ¤·¤Þ¤¹¡£ t ¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï $0 ¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£ ÃÖ´¹¥Æ¥­¥¹¥È¤Ç¤Ï¡¢ & ¤Ï¼ÂºÝ¤Ë¥Þ¥Ã¥Á¤·¤¿¥Æ¥­¥¹¥È¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£ \& ¤ò»ÈÍѤ¹¤ë¤È¥ê¥Æ¥é¥ë¤Î & ¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ sub(), gsub(), gensub() ¤Ë¤ª¤±¤ë & ¤È¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ë´Ø¤¹¤ë´°Á´¤ÊµÄÏÀ¤Ï Effective AWK Language Programming ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
index(s, t)
ʸ»úÎó s Ãæ¤Ë´Þ¤Þ¤ì¤ëʸ»úÎó t ¤Î°ÌÃÖ¤òÊÖ¤·¤Þ¤¹¡£ t ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï 0 ¤òÊÖ¤·¤Þ¤¹¡£
length([s])
ʸ»úÎó s ¤ÎŤµ¤òÊÖ¤·¤Þ¤¹¡£ s ¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï $0 ¤ÎŤµ¤òÊÖ¤·¤Þ¤¹¡£
match(s, r)
ʸ»úÎó s Ãæ¤ÇÀµµ¬É½¸½ r ¤Ë¥Þ¥Ã¥Á¤¹¤ë°ÌÃÖ¤òÊÖ¤·¤Þ¤¹¡£¥Þ¥Ã¥Á¤·¤Ê¤¤¾ì¹ç¤Ï 0 ¤ò ÊÖ¤·¤Þ¤¹¡£ RSTART ¤È RLENGTH ¤ÎÃͤ¬ÀßÄꤵ¤ì¤Þ¤¹¡£
split(s, a [, r])
ʸ»úÎó s ¤òÀµµ¬É½¸½ r ¤òÍѤ¤¤Æʬ³ä¤·¡¢ÇÛÎó a ¤Ë³ÊǼ¤·¤Þ¤¹¡£ ¥Õ¥£¡¼¥ë¥É¿ô¤òÊÖ¤·¤Þ¤¹¡£ r ¤¬¾Êά¤µ¤ì ¤¿¾ì¹ç¤Ï FS ¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£ÇÛÎó a ¤ÎÆâÍƤϡ¢Ê¬³äÁ°¤Ë¥¯¥ê¥¢¤µ¤ì¤Þ¤¹¡£ ʬ³ä¤Ï¡¢¾å½Ò¤Î¥Õ¥£¡¼¥ë¥Éʬ³ä¤ÈƱ¤¸Æ°ºî¤ò¹Ô¤¤¤Þ¤¹¡£
sprintf(fmt, expr-list)
½ñ¼° fmt ¤Ë½¾¤Ã¤Æ exp-list ¤òÀ°·Áɽ¼¨¤·¡¢·ë²Ì¤Îʸ»úÎó¤òÊÖ¤·¤Þ¤¹¡£
sub(r, s [, t])
gsub() ¤È»÷¤Æ¤¤¤Þ¤¹¤¬¡¢ºÇ½é¤Ë¥Þ¥Ã¥Á¤·¤¿Ê¸»úÎó¤Î¤ß¤¬ÃÖ´¹¤µ¤ì¤Þ¤¹¡£
substr(s, i [, n])
ʸ»úÎó s ¤Î i ʸ»úÌܤ«¤é»Ï¤Þ¤ëºÇÂç n ʸ»ú¤ÎÉôʬʸ»úÎó¤òÊÖ¤·¤Þ¤¹¡£ n ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¡¢ i ʸ»úÌܰʹߤÎÉôʬʸ»úÎó¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
tolower(str)
ʸ»úÎó str ¤ò¥³¥Ô¡¼¤·¡¢Âçʸ»ú¤ò¤¹¤Ù¤Æ¾®Ê¸»ú¤ËÊÑ´¹¤·¤¿¤â¤Î¤òÊÖ¤·¤Þ¤¹¡£ ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ç¤Ê¤¤Ê¸»ú¤ÏÊѲ½¤·¤Þ¤»¤ó¡£
toupper(str)
ʸ»úÎó str ¤ò¥³¥Ô¡¼¤·¡¢¾®Ê¸»ú¤ò¤¹¤Ù¤ÆÂçʸ»ú¤ËÊÑ´¹¤·¤¿¤â¤Î¤òÊÖ¤·¤Þ¤¹¡£ ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ç¤Ê¤¤Ê¸»ú¤ÏÊѲ½¤·¤Þ¤»¤ó¡£

»þ´Ö´Ø¿ô

¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò´Þ¤ó¤À¥í¥°¥Õ¥¡¥¤¥ë¤Î½èÍý¤Ï AWK ¥×¥í¥°¥é¥à¤Î¼ç¤Ê»È¤¤Æ»¤Î1¤Ä¤Ç¤¹¤«¤é¡¢ gawk ¤Ï¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¼è¤ê½Ð¤·¤¿¤ê¡¢¥Õ¥©¡¼¥Þ¥Ã¥È ¤¹¤ë¤¿¤á¤Î 2 ¤Ä¤Î´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£

systime()
´ð½à»þÅÀ¤«¤é¤Î·Ð²áÉÿô¤òÊÖ¤·¤Þ¤¹ (POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢´ð½à»þÅÀ¤Ï UTC ¤Ç 1970 ǯ 1 ·î 1 Æü 0:00 ¤Ç¤¹)¡£
strftime([format [, timestamp]])
½ñ¼° format ¤Ë½¾¤Ã¤Æ timestamp ¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤Þ¤¹¡£ timestamp ¤Ï systime() ¤¬ÊÖ¤¹ÃͤÈƱ¤¸·Á¼°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ timestamp ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¡¢¸½ºß¤ÎÆüÉÕ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ format ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¡¢ date(1) ¤¬½ÐÎϤ˻ÈÍѤ¹¤ë¤â¤Î¤ÈƱ¤¸¥Ç¥Õ¥©¥ë¥È¥Õ¥©¡¼¥Þ¥Ã¥È¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ ÍøÍѲÄǽ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢ANSI C ¤Î strftime() ´Ø¿ô¤Î»ÅÍͤò»²¾È¤·¤Æ²¼¤µ¤¤¡£¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó¤Ê strftime(3) ¤È¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤¬ gawk ¤È¤È¤â¤ËÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤â¤·¡¢ gawk ¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¤½¤Î strftime ¤òÍѤ¤¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥Þ¥Ë¥å¥¢¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ëÊÑ´¹½ñ¼°¤¬ gawk ¤Ç¤âÍøÍѲÄǽ¤Ç¤¹¡£

ʸ»úÎóÄê¿ô

AWK ¤Ç¤Îʸ»úÎóÄê¿ô¤Ï¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È (") ¤Ë¶¹¤Þ¤ì¤¿Ê¸»ú¤ÎÎó¤Ç¤¹¡£ ʸ»úÎóÆâ¤Ç¤Ï¡¢C ¸À¸ì¤Î¤è¤¦¤Ë¤¤¤¯¤Ä¤«¤Î ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ ¤¬»È¤¨¤Þ¤¹¡£

\\
¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤½¤Î¤â¤Î¡£
\a
¡Ö·Ù¹ð¡×ʸ»ú¡£Ä̾ï¤Ï ASCII BEL ʸ»ú¤Ç¤¹¡£
\b
¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¡£
\f
²þ¥Ú¡¼¥¸ (¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É)¡£
\n
²þ¹Ô¡£
\r
Éüµ¢ (¥­¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó)¡£
\t
¿åÊ¿¥¿¥Ö¡£
\v
¿âľ¥¿¥Ö¡£
\xhex digits
\x ¤Ë³¤¯ 16 ¿Ê¿ô¤Çɽ¸½¤µ¤ì¤¿Ê¸»ú¡£ANSI C ¤ÈƱÍͤˡ¢ \x ¤Ë³¤¯¤¹¤Ù¤Æ¤Î 16 ¿Ê¿ô»ú ¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Î°ìÉô¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£ (¤³¤Îµ¡Ç½¤Ë¤è¤ê¥³¥ß¥Ã¥Æ¥£¤Ë¤è¤ë¸À¸ì¥Ç¥¶¥¤¥ó¤¬Ê¬¤«¤ê¤Þ¤¹¡£) Î㤨¤Ð¡¢"\x1B" ¤Ï ASCII ESC (¥¨¥¹¥±¡¼¥×) ʸ»ú¤Ç¤¹¡£
\ddd
1 ·å¤« 2 ·å¤« 3 ·å¤Î 8 ¿Ê¿ô¤Çɽ¸½¤µ¤ì¤¿Ê¸»ú¡£Î㤨¤Ð¡¢ "\033" ¤Ï ASCII ESC (¥¨¥¹¥±¡¼¥×) ʸ»ú¤Ç¤¹¡£
\c
ʸ»ú c ¤½¤Î¤â¤Î¡£

¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÏÀµµ¬É½¸½Äê¿ôÆâ¤Ç¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹ (Î㤨¤Ð¡¢ /[ \t\f\n\r\v]/ ¤Ï¶õÇòʸ»ú¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹)¡£

¸ß´¹¥â¡¼¥É¤Ç¤Ï¡¢8 ¿Ê¤ª¤è¤Ó 16 ¿Ê¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Çɽ¸½¤µ¤ì¤ëʸ»ú¤Ï¡¢ Àµµ¬É½¸½Äê¿ô¤È¤·¤Æ»ÈÍѤµ¤ì¤¿¾ì¹ç¡¢¥ê¥Æ¥é¥ë¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ ¤½¤ì¤æ¤¨¡¢ /a\52b/ ¤Ï /a\*b/ ¤ÈÅù²Á¤Ç¤¹¡£

´Ø¿ô

AWK ¤Ç¤Ï´Ø¿ô¤ò°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÄêµÁ¤·¤Þ¤¹¡£
function name(parameter list) { statements }

´Ø¿ô¤Ï¡¢¥Ñ¥¿¡¼¥ó¤Þ¤¿¤Ï¥¢¥¯¥·¥ç¥ó¤Î¼°¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤ÆÍ¿¤¨¤é¤ì¤¿¼Â°ú¿ô¤¬¡¢´Ø¿ôÀë¸À¤Ë¤ª¤±¤ë²¾°ú¿ô¤Ë ¼õ¤±ÅϤµ¤ì¤Þ¤¹¡£ ¤³¤Î¤È¤­ÇÛÎó¤Î¾ì¹ç¤Ï»²¾ÈÅϤ·¤¬¹Ô¤ï¤ì¡¢Â¾¤ÎÊÑ¿ô¤Î¾ì¹ç¤ÏÃÍÅϤ·¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£

¸µ¡¹ AWK ¤Ë´Ø¿ô¤ÏÈ÷¤ï¤Ã¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¤Î¤Ç¡¢¶É½êÊÑ¿ô¤Îµ¡¹½¤Ï¤¢¤Þ¤ê ¥¹¥Þ¡¼¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¶É½êÊÑ¿ô¤Ï°ú¿ô¥ê¥¹¥È¤Î;ʬ¤Ê°ú¿ô¤È¤·¤ÆÀë¸À¤·¤Þ¤¹¡£¶É½êÊÑ¿ô¤È´Ø ¿ô°ú¿ô¤ò¶èÊ̤¹¤ë¤¿¤á¡¢Í¾Ê¬¤Ê¶õÇò¤Ç¶èÀÚ¤ë¤Î¤¬´·½¬¤Ç¤¹¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è ¤¦¤Ë¤·¤Þ¤¹¡£


function  f(p, q,     a, b)     # a & b ¤Ï¶É½êÊÑ¿ô

{

        ...

}



/abc/   { ... ; f(1, 2) ; ... }

´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤ª¤±¤ëº¸³ç¸Ì¤Ï¡¢¶õÇò¤ò¶¹¤Þ¤º¤Ë´Ø¿ô̾¤Îľ¸å¤Ë ÃÖ¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤³¤ì¤Ï¡¢Ê¸»úÎó·ë¹ç±é»»»Ò¤È¤ÎÛ£Ë椵¤òÀ¸¤¸¤µ¤»¤Ê¤¤¤¿¤á¤ËɬÍפǤ¹¡£ ¤³¤ÎÀ©¸Â¤Ï¡¢¾å½Ò¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤ê¤Þ¤»¤ó¡£

´Ø¿ô¤Ï¡¢Â¾¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¤ê¡¢¼«Ê¬¼«¿È¤òºÆµ¢Åª¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¶É½êÊÑ¿ô¤È¤·¤ÆÍѤ¤¤é¤ì¤ë´Ø¿ô°ú¿ô¤Ï¡¢´Ø¿ôµ¯Æ°»þ¤Ë¶õʸ»úÎ󤪤è¤Ó 0 ¤Ë½é´ü²½¤µ¤ì¤Þ¤¹¡£

´Ø¿ô¤«¤éÃͤòÊÖ¤¹¤Ë¤Ï return expr ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ Ãͤò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï´Ø¿ô¤Î½ª¤ê¤«¤é ``Íî¤Á¤ë'' (ÌõÃí: ´Ø¿ô¤òÊĤ¸¤ë¥Ö¥ì¡¼¥¹¤ËÅþ㤹¤ë) ¤³¤È¤Ë¤è¤ê´Ø¿ô¤«¤éÌá¤ë¾ì¹ç¡¢ ÃͤÏ̤ÄêµÁ¤Ç¤¹¡£

--lint ¤¬»ØÄꤵ¤ì¤¿¤È¤­¡¢ gawk ¤Ï¼Â¹Ô»þ¤Ç¤Ï¤Ê¤¯¥Ñ¡¼¥º»þ¤Ë̤ÄêµÁ´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ë´Ø¤·¤Æ·Ù¹ð¤·¤Þ¤¹¡£ ¼Â¹Ô»þ¤Î̤ÄêµÁ´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ÏÃ×̿Ū¤Ê¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£

function ¤Î¤«¤ï¤ê¤Ë func ¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

»ÈÍÑÎã


``/etc/passwd'' ¤«¤éÁ´¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó̾¤ò¼è¤ê½Ð¤·¡¢¥½¡¼¥È¤·¤Æ½ÐÎϤ·¤Þ¤¹¡£



        BEGIN   { FS = ":" }

                { print $1 | "sort" }



¥Õ¥¡¥¤¥ë¤Î¹Ô¿ô¤ò¿ô¤¨¤ë¡£



                { nlines++ }

        END     { print nlines }



¹ÔÈÖ¹æ¤ò¤Ä¤±¤ë¡£



        { print FNR, $0 }



Á´¥Õ¥¡¥¤¥ë¤òÄ̤·¤¿¹ÔÈÖ¹æ¤ò¤Ä¤±¤ë¡£



        { print NR, $0 }


´ØÏ¢¹àÌÜ

egrep(1), getpid(2), getppid(2), getpgrp(2), getuid(2), geteuid(2), getgid(2), getegid(2), getgroups(2)

The AWK Programming Language, Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988. ISBN 0-201-07981-X.

Effective AWK Language Programming, Edition 1.0, published by the Free Software Foundation, 1995.

POSIX ¸ß´¹

gawk ¤ÏºÇ¿·ÈǤΠUNIX awk ¤È¤Î¸ß´¹À­¤À¤±¤Ç¤Ê¤¯¡¢POSIX ɸ½à¤È¤Î¸ß´¹À­¤âÄɵᤷ¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¤¿¤á gawk ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Êµ¡Ç½¤¬¼è¤êÆþ¤ì¤é¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤Îµ¡Ç½¤Ï AWK ËܤˤϽҤ٤é¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¢ Bell Labs ¤ª¤è¤Ó POSIX ɸ½à¤Î awk ¤¬Í­¤·¤Æ¤¤¤ëµ¡Ç½¤Ç¤¹¡£

¥×¥í¥°¥é¥à¼Â¹ÔÁ°¤ËÊÑ¿ôÂåÆþ¤ò¹Ô¤Ê¤¦ -v ¥ª¥×¥·¥ç¥ó¤Ï¿·¤·¤¤Êª¤Ç¤¹¡£ AWK Ëܤˤè¤ì¤Ð¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿ÊÑ¿ôÂåÆþ¤Ï awk ¤¬°ú¿ô¤ò¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ¥ª¡¼¥×¥ó¤¹¤ëºÝ¤Ë¹Ô¤Ê¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤Ä¤Þ¤ê ¤³¤ì¤Ï BEGIN ¥Ö¥í¥Ã¥¯¤Î¼Â¹Ô¸å¤Ç¤¹¡£¤·¤«¤·¤Ê¤¬¤é½é´ü¤Îº¢¤Î¼ÂÁõ¤Ç¤Ï¡¢°ú¿ô¤ÎÃæ¤Ç¥Õ¥¡¥¤¥ë̾¤Ë ÀèΩ¤Ã¤ÆÊÑ¿ôÂåÆþ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ÂåÆþ¤Ï BEGIN ¥Ö¥í¥Ã¥¯¼Â¹Ô¤Î Á°¤Ë ¹Ô¤ï¤ì¤Æ¤¤¤Þ¤·¤¿¡£¤½¤·¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¤³¤Î¡Ö»ÅÍ͡פ˰͸¤¹¤ë ¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ awk ¤¬¤½¤Î¥É¥­¥å¥á¥ó¥È¤Ë¹ç¤¦¤è¤¦¤Ëľ¤µ¤ì¤¿»þ¡¢ÀΤÎÆ°ºî¤Ë°Í¸¤·¤Æ¤¤¤ë ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÊص¹¤ò¿Þ¤ë¤¿¤á¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤¬²Ã¤¨¤é¤ì¤Þ¤·¤¿¡£ (¤³¤Î»ÅÍÍ¤Ï AT&T ¤ª¤è¤Ó GNU ¤Î³«È¯¼Ôã¤Ë¤è¤Ã¤Æ¹ç°Õ¤µ¤ì¤Þ¤·¤¿¡£)

Æȼ«µ¡Ç½¤Î¤¿¤á¤Î -W ¥ª¥×¥·¥ç¥ó¤Ï POSIX ɸ½à¤Ë½¾¤Ã¤¿¤â¤Î¤Ç¤¹¡£

°ú¿ô¤ÎÎó¤ËÆÃÊ̤ʥª¥×¥·¥ç¥ó ``--'' ¤ò»ØÄꤹ¤ë¤È¡¢ gawk ¤Ï¤½¤³¤¬¥ª¥×¥·¥ç¥ó¤Î½ª¤ï¤ê¤Ç¤¢¤ë¤È²ò¼á¤·¤Þ¤¹¡£ ¸ß´¹¥â¡¼¥É¤Ë¤ª¤¤¤Æ¤Ï̤ÄêµÁ¥ª¥×¥·¥ç¥ó¤Ï·Ù¹ð¤¬½ÐÎϤµ¤ì¡¢¤½¤ì°Ê³°¤Î¤â¤Î¤Ï ̵»ë¤µ¤ì¤Þ¤¹¡£ Ä̾ï¤Î¼Â¹Ô¤Ë¤ª¤¤¤Æ¤Ï»Ä¤ê¤Î°ú¿ô¤Ï AWK ¥×¥í¥°¥é¥à¤Ë°ú¤­ÅϤµ¤ì¤Þ¤¹¡£

AWK ËÜ¤Ï srand() ¤ÎÊÖ¤êÃͤòÄêµÁ¤·¤Æ¤¤¤Þ¤»¤ó¡£ POSIX ɸ½à ¤Ç¤Ï¡¢¤½¤Î´Ø¿ô¤¬»È¤Ã¤Æ¤¤¤ë¼ï¤òÊÖ¤·¡¢ Íð¿ô¥·¡¼¥±¥ó¥¹¤òÄÉÀפǤ­¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ gawk ¤Ë¤ª¤±¤ë srand() ¤â¸½ºß¤Î¼ï¤òÊÖ¤¹¤è¤¦¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£

¤½¤Î¾¤Ë¤â°Ê²¼¤Î¤è¤¦¤Ê¿·µ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ -f ¥ª¥×¥·¥ç¥ó¤ÎÊ£¿ô²ó»ÈÍÑ (MKS awk¤ËÊ襤¤Þ¤·¤¿); ENVIRON ÇÛÎó; ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ \a ¤È \v ( gawk ¤ÇºÇ½é¤Ë¼ÂÁõ¤µ¤ì¡¢AT&T ¤Î awk ¤Ë¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤µ¤ì¤Þ¤·¤¿); ÁȤ߹þ¤ß´Ø¿ô tolower() ¤È toupper() (AT&T ¤ËÊ襤¤Þ¤·¤¿); printf ¤Ë¤ª¤±¤ë ANSI C ÊÑ´¹»ØÄê (AT&T ÈǤǺǽé¤Ë¼ÂÁõ¤µ¤ì¤Þ¤·¤¿)¡£

GNU ³ÈÄ¥

gawk ¤Ï POSIX awk ¤ËÂФ·¤Æ¿¤¯¤Î³ÈÄ¥¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ÎÀá¤Ç¤Ï¤½¤ì¤é¤Ë¤Ä¤¤¤Æ²òÀ⤷¤Þ¤¹¡£ --traditional ¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç gawk ¤òµ¯Æ°¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¤³¤³¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ë³ÈÄ¥µ¡Ç½¤ò¤¹¤Ù¤Æ¶Ø»ß¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

gawk ¤¬»ý¤Ä°Ê²¼¤Îµ¡Ç½¤Ï POSIX awk ¤Ç¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡£

*
¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ \x ¡£( --posix ¤ÇÍ޻ߤǤ­¤Þ¤¹¡£)
*
fflush() ´Ø¿ô¡£( --posix ¤ÇÍ޻ߤǤ­¤Þ¤¹¡£)
*
systime(), strftime(), gensub() ¤Î³Æ´Ø¿ô¡£
*
Æþ½ÐÎÏ¥ê¥À¥¤¥ì¥¯¥È¤ÇÍøÍѲÄǽ¤ÊÆüì¥Õ¥¡¥¤¥ë̾¤ÏÍý²ò¤µ¤ì¤Þ¤»¤ó¡£
*
ÊÑ¿ô ARGIND, ERRNO, RT ¤ÏÆüìÊÑ¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
*
ÊÑ¿ô IGNORECASE ¤È¤½¤ÎÉûºîÍѤÏÍøÍѤǤ­¤Þ¤»¤ó¡£
*
ÊÑ¿ô FIELDWIDTHS ¤È¸ÇÄêĹ¥Õ¥£¡¼¥ë¥Éʬ³ä¡£
*
RS ¤ÎÀµµ¬É½¸½¤È¤·¤Æ¤Î»ÈÍÑ¡£
*
FS ¤Ë¶õʸ»úÎó¤òÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê³Æʸ»ú¤òÀÚ¤ê½Ð¤¹Ç½ÎϤȡ¢ split() ¤Î 3 ÈÖÌܤΰú¿ô¡£
*
-f ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤Ë¤Ä¤¤¤Æ¥Ñ¥¹¸¡º÷¤ò¹Ô¤ï¤Ê¤¤¤³¤È¡£ ¤è¤Ã¤Æ¡¢´Ä¶­ÊÑ¿ô AWKPATH ¤ÏÆüì¤ÊÊÑ¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
*
¸½ºß¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë½èÍý¤ò½ª¤ï¤é¤»¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë nextfile ¡£
*
ÇÛÎóÁ´ÂΤòºï½ü¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë delete ÇÛÎó ¡£

AWK Ëܤϴؿô close() ¤ÎÊÖ¤êÃͤòÄêµÁ¤·¤Æ¤¤¤Þ¤»¤ó¡£ gawk ¤Î close() ¤Ï¡¢¥Õ¥¡¥¤¥ë¤ä¥Ñ¥¤¥×¤ò¥¯¥í¡¼¥º¤¹¤ëºÝ¤Ë¸Æ¤Ó½Ð¤¹ fclose(3) ¤ä pclose(3)¡¢ ¤«¤é¤ÎÊÖ¤êÃͤòÊÖ¤·¤Þ¤¹¡£

¥ª¥×¥·¥ç¥ó --traditional ÉÕ¤­¤Ç gawk ¤òµ¯Æ°¤· -F ¥ª¥×¥·¥ç¥ó¤Ø¤Î°ú¿ô fs ¤È¤·¤Æ ``t'' ¤òÍ¿¤¨¤¿¾ì¹ç¤Ë¡¢ FS ¤ÎÃͤϥ¿¥Öʸ»ú¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ gawk -F\t ... ¤È¥¿¥¤¥×¤·¤Æ¤â¡¢¥·¥§¥ë¤¬Ã±¤Ë ``t'' ¤ò¥¯¥©¡¼¥È¤¹¤ë¤Î¤Ç¡¢``\t'' ¤Ï -F ¥ª¥×¥·¥ç¥ó¤ËÅϤµ¤ì¤Þ¤»¤ó¡£ ¤³¤ì¤Ï¾¯¡¹¸«¶ì¤·¤¤Æüì»öÎã¤Ç¤¹¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤È¤·¤Æ¤Ï ºÎÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ --posix ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤â¡¢¤³¤ÎÆ°ºî¤Ï¹Ô¤Ê¤ï¤ì¤Þ¤»¤ó¡£ ¥¿¥Öʸ»ú¤ò¥Õ¥£¡¼¥ë¥É¥»¥Ñ¥ì¡¼¥¿¤È¤·¤Æ»ÈÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ ¥¯¥©¡¼¥È¤ò»ÈÍѤ¹¤ë¤Î¤¬ºÇÎɤǤ¹: gawk -F'\t' ....

Îò»ËŪµ¡Ç½

gawk ¤ÏÎòÂå¤Î AWK ¤Î¼ÂÁõ¤Ë¤¢¤Ã¤¿ 2 ¤Ä¤Îµ¡Ç½¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ 1 ¤Ä¤á¤È¤·¤Æ¡¢ÁȤ߹þ¤ß´Ø¿ô length() ¤Ï°ú¿ô̵¤·¤Ç¸Æ¤Ó½Ð¤»¤ë¤À¤±¤Ç¤Ê¤¯¡¢¤µ¤é¤Ë³ç¸Ì̵¤·¤Ç¤â¸Æ¤Ó½Ð¤»¤Þ¤¹! ¤·¤¿¤¬¤Ã¤Æ

a = length    # Holy Algol 60, Batman!

¤Ï°Ê²¼¤Î2Îã¤ÈƱ¤¸¤Ç¤¹¡£


a = length()
a = length($0)

POSIX ɸ½à¤Ç¤Ï¤³¤Îµ¡Ç½¤Ï ``deprecated'' ¤ÈÃí°Õ½ñ¤­¤µ¤ì¤Æ¤ª¤ê¡¢ gawk ¤Ç¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç --lint ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¡¢¤³¤Îµ¡Ç½¤Î»ÈÍѤËÂФ·¤Æ·Ù¹ð¤ò½ÐÎϤ·¤Þ¤¹¡£

¤â¤¦ 1 ¤Ä¤Ï¡¢ while, for, do ¥ë¡¼¥×ËÜÂΤγ°¤Ç¤â continue, break ¥¹¥Æ¡¼¥È¥á¥ó¥È¤ò»ÈÍѤǤ­¤ë¤È¤¤¤¦µ¡Ç½¤Ç¤¹¡£ ÅÁÅýŪ¤Ê AWK ¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ë»ÈÍѤ·¤¿ continue ¥¹¥Æ¡¼¥È¥á¥ó¥È¤ò next ¥¹¥Æ¡¼¥È¥á¥ó¥È¤ÈÅù²Á¤Ê¤â¤Î¤È¤·¤Æ°·¤Ã¤Æ¤­¤Þ¤·¤¿¡£ gawk ¤Ç¤Ï --traditional ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¡¢¤³¤Îµ¡Ç½¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

´Ä¶­ÊÑ¿ô

´Ä¶­¤Ë POSIXLY_CORRECT ¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ gawk ¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç --posix ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë»þ¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤·¤Þ¤¹¡£ ¤³¤Î¤È¤­ --lint ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È gawk ¤Ï¤³¤ÎºîÍѤˤĤ¤¤Æ¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£

AWKPATH ´Ä¶­ÊÑ¿ô¤ò»ÈÍѤ·¤Æ¡¢ gawk ¤¬ -f ¤ª¤è¤Ó --file ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£

¥Ð¥°

¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¤ÎÊÑ¿ôÂåÆþµ¡Ç½¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢ÊÑ¿ô¤Ø¤ÎÂåÆþ¤òľÀÜ ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë½ñ¤±¤Ð¤è¤¯¡¢ -F ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÀΤΠawk ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤À¤±¤Ë»Ä¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¥Õ¥¡¥¤¥ë /dev/fd ¤ª¤è¤Ó /dev/stdin, /dev/stdout, /dev/stderr ¤ò¼ÂºÝ¤Ë¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Î gawk ¤«¤é¤Ï¡¢¤½¤ì¤é¤¬¤Ê¤¤¥·¥¹¥Æ¥à¤È¤Ï°ã¤Ã¤¿½ÐÎϤ¬ÆÀ¤é¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ gawk ¤Ï¤½¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤òÆâÉô¤Ç²ò¼á¤¹¤ëºÝ¤Ëɸ½à½ÐÎϤؤνÐÎϤò /dev/stdout ¤Ø¤Î½ÐÎϤÈƱ´ü¤µ¤»¤Þ¤¹¤¬¡¢¤½¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò»ý¤Ä¥·¥¹¥Æ¥à¤Ç¤Ï ½ÐÎϤϤ½¤ì¤¾¤ì°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¤Ø¸þ¤±¤é¤ì¤Þ¤¹¡£ ÍøÍѼԤÎÊý¤Çµ¤¤òÉÕ¤±¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤ (Caveat Emptor)¡£

ʸˡŪ¤Ë¸í¤Ã¤¿Ã±°ìʸ»ú¥×¥í¥°¥é¥à¤Ï¥Ñ¡¼¥º¥¹¥¿¥Ã¥¯¤ò°î¤ì¤µ¤»¤ë·¹¸þ¤¬¤¢¤ê¡¢ ¤Þ¤Ã¤¿¤¯Ê¬¤«¤é¤Ê¤¤¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤¹¤ë·¹¸þ¤Ë¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Î¿ÇÃǤ϶䯤٤­¤³¤È¤Ë°ìÈ̤ËÆñ¤·¤¯¡¢ ¿ÇÃǤÎÅØÎϤϤޤ俤¯Ìµ°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡£

¥Ð¡¼¥¸¥ç¥ó¾ðÊó

¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï gawk ¥Ð¡¼¥¸¥ç¥ó 3.0.6 ¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤Þ¤¹¡£

ºî¼Ô

UNIX awk ¤ÎºÇ½é¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢AT&T Bell Labs ¤Î Alfred Aho ¤È Peter Weinberger ¤ª¤è¤Ó Brian Kernighan ¤Ë¤è¤Ã¤ÆÀ߷ס¢¼ÂÁõ¤µ¤ì¤Þ¤·¤¿¡£ Brian Kernighan ¤Ï¤½¤ÎÊݼé¤È²þÎɤò³¤±¤Æ¤¤¤Þ¤¹¡£

Free Software Foundation ¤Î Paul Rubin ¤È Jay Fenlason ¤¬¡¢Seventh Edition UNIX ¤ÇÇÛÉÛ¤µ¤ì¤¿ºÇ½é¤Î¥Ð¡¼¥¸¥ç¥ó¤Î awk ¤È¸ß´¹À­¤ò»ý¤Ä¤è¤¦¤Ë gawk ¤ò½ñ¤­¤Þ¤·¤¿¡£ John Woods ¤Ï¿ô¡¹¤Î¥Ð¥°½¤Àµ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¤Þ¤·¤¿¡£ David Trueman ¤Ï¡¢Arnold Robbins ¤¬Á÷¤Ã¤Æ²¼¤µ¤Ã¤¿ÆâÍƤò¤â¤È¤Ë¡¢ gawk ¤ò¿·¥Ð¡¼¥¸¥ç¥ó¤Î UNIX awk ¸ß´¹¤Ë¤·¤Þ¤·¤¿¡£

DOS ¤Ø¤ÎºÇ½é¤Î°Ü¿¢¤Ï Conrad Kwok ¤È Scott Garfinkle ¤Ë¤è¤Ã¤Æ ¹Ô¤Ê¤ï¤ì¤Þ¤·¤¿¡£ ¸½ºß¤Ï Scott Deifik ¤¬ DOS ÈǤÎÊݼé¤ò¤·¤Æ¤¤¤Þ¤¹¡£ Pat Rankin ¤Ï VMS ¤Ø¤Î°Ü¿¢¤ò¹Ô¤Ê¤¤¡¢Michal Jaegermann ¤Ï Atari ST ¤Ø¤Î °Ü¿¢¤ò¹Ô¤Ê¤¤¤Þ¤·¤¿¡£ OS/2 ¤Ø¤Î°Ü¿¢¤Ï Kai Uwe Rommel ¤¬ Darrel Hankerson ¤Î½õ¤±¤ò¼Ú¤ê¤Æ ¹Ô¤Ê¤¤¤Þ¤·¤¿¡£ Fred Fish ¤¬ Amiga ¥µ¥Ý¡¼¥È¤ÎÄ󶡤ò¹Ô¤¤¤Þ¤·¤¿¡£

¥Ð¥°¥ì¥Ý¡¼¥È

gawk ¤Î¥Ð¥°¤ò¸«ÉÕ¤±¤¿¤é¡¢ÅŻҥ᡼¥ë¤ò bug-gawk@gnu.org °¸¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£ ÅŻҥ᡼¥ë¤Ë¤Ï¡¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤È¤½¤Î¥ê¥Ó¥¸¥ç¥ó¡¢ gawk ¤Î¥ê¥Ó¥¸¥ç¥ó¡¢¥³¥ó¥Ñ¥¤¥ë¤Ë»ÈÍѤ·¤¿ C ¥³¥ó¥Ñ¥¤¥é¡¢ ÌäÂê¤òºÆ¸½¤¹¤ë¤Ç¤­¤ë¤À¤±¾®¤µ¤Ê¥Æ¥¹¥È¥×¥í¥°¥é¥à¤È¥Ç¡¼¥¿¤òµ­½Ò¤·¤Æ¤¯¤À¤µ¤¤¡£

¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤ëÁ°¤Ë 2 ¤Ä¤Î¤³¤È¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£ Âè 1 ¤Ë¡¢ºÇ¿·¤Î gawk ¤ò»ÈÍѤµ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¿¤¯¤Î (Ä̾ïÈù̯¤Ê) ¥Ð¥°¤¬³Æ¡¹¤Î¥ê¥ê¡¼¥¹¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ ¤´»ÈÍѤΤâ¤Î¤¬¸Å¤¤¾ì¹ç¤Ë¤ÏÌäÂê¤Ï´û¤Ë²ò·è¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ Âè 2 ¤Ë¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤È¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë¤òÃí°Õ¿¼¤¯Æɤߡ¢ ¤¢¤Ê¤¿¤¬¥Ð¥°¤À¤È»×¤¦¤â¤Î¤¬³Î¤«¤Ë¥Ð¥°¤Ç¤¢¤ê¡¢ Â礭¤¯ÊѤï¤Ã¤¿¸À¸ì»ÅÍͤǤϤʤ¤¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£

¥Ð¥°¥ì¥Ý¡¼¥È¤ò comp.lang.awk ¤ËÅê¹Æ¤¹¤ë¤³¤È¤À¤±¤Ï¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ gawk ¤Î³«È¯¼Ôã¤Ï»þ¡¹¤³¤Î¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤òÆɤߤޤ¹¤¬¡¢ ¥Ð¥°¥ì¥Ý¡¼¥È¤ò¤³¤Î¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤ËÅê¹Æ¤·¤Æ¤â ¥Ð¥°¥ì¥Ý¡¼¥È¤È¤·¤Æ¿®ÍêÀ­¤¬¤¢¤ê¤Þ¤»¤ó¡£ ¾åµ­¤Î¥¢¥É¥ì¥¹¤Ø¤ÎÅŻҥ᡼¥ë¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£

¼Õ¼­

Bell Labs ¤Î Brian Kernighan ¤Ï¥Æ¥¹¥È¤ª¤è¤Ó¥Ç¥Ð¥Ã¥°¤Î´Ö¡¢µ®½Å¤Ê½õÎϤò Ä󶡤·¤Æ²¼¤µ¤¤¤Þ¤·¤¿¡£ ´¶¼ÕÃפ·¤Þ¤¹¡£

COPYING PERMISSIONS

Copyright © 1996-2000 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual page under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual page into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation.