Rechercher une page de manuel
gawk
Langue: ja
Version: May 17 2000 (openSuse - 09/10/07)
Section: 1 (Commandes utilisateur)
Sommaire
̾¾Î
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 ¸ì¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ÎÍÑË¡¤Ï¤Þ¤Àǧ¼±¤µ¤ì¤Þ¤¹¤¬¡¢ ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÀ¸¤¸¤µ¤»¤Þ¤¹¤·¡¢ºÇ½ªÅª¤Ë¤Ï̵¤¯¤Ê¤ëɽ¸½¤Ç¤¹¡£
- ¸½ºß¤Î¥ì¥³¡¼¥É¤ò½ÐÎϤ·¤Þ¤¹¡£ ½ÐÎϥ쥳¡¼¥É¤Ï 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.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre