{"id":658,"date":"2012-11-19T18:41:12","date_gmt":"2012-11-19T09:41:12","guid":{"rendered":"http:\/\/www.techscore.com\/blog\/?p=658"},"modified":"2018-11-14T16:33:59","modified_gmt":"2018-11-14T07:33:59","slug":"%e3%81%82%e3%81%88%e3%81%a6%e8%a8%80%e3%81%86%e3%81%bb%e3%81%a9%e3%81%a7%e3%81%af%e3%81%aa%e3%81%84%e3%81%91%e3%82%8c%e3%81%a9%e3%82%82%e3%80%81awk%e3%81%ae%e5%8c%ba%e5%88%87%e3%82%8a%e6%96%87","status":"publish","type":"post","link":"https:\/\/www.techscore.com\/blog\/2012\/11\/19\/%e3%81%82%e3%81%88%e3%81%a6%e8%a8%80%e3%81%86%e3%81%bb%e3%81%a9%e3%81%a7%e3%81%af%e3%81%aa%e3%81%84%e3%81%91%e3%82%8c%e3%81%a9%e3%82%82%e3%80%81awk%e3%81%ae%e5%8c%ba%e5%88%87%e3%82%8a%e6%96%87\/","title":{"rendered":"\u3042\u3048\u3066\u8a00\u3046\u307b\u3069\u3067\u306f\u306a\u3044\u3051\u308c\u3069\u3082\u3001awk\u306e\u533a\u5207\u308a\u6587\u5b57\u306b\u3064\u3044\u3066"},"content":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3001\u6cb3\u91ce\u3067\u3059\u3002<\/p>\n<p>\u4fdd\u5b88\u696d\u52d9\u3067\u30ed\u30b0\u3092\u5206\u5272\u3057\u3066\u4e00\u90e8\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u95b2\u89a7\u30fb\u96c6\u8a08\u3059\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u305d\u3093\u306a\u3068\u304d\u306fawk\u304c\u6d3b\u8e8d\u3057\u307e\u3059\u306d\u3002\u4eca\u56de\u306fawk\u306e\u4f7f\u3044\u65b9\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h2>\u307e\u305a\u306fawk\u306e\u57fa\u672c\u3092\u304a\u3055\u3089\u3044<\/h2>\n<h3>awk\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u66f8\u5f0f<\/h3>\n<p>awk\u306f\u3001\u4f55\u3092\u5b9f\u884c\u3059\u308b\u304bawk\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u8a18\u8ff0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre>\u6761\u4ef6 {\r\n  \u5b9f\u884c\u5185\u5bb9\r\n}<\/pre>\n<p>\u3053\u3046\u3044\u3063\u305f\u30d6\u30ed\u30c3\u30af\u3092\u8907\u6570\u8a18\u8ff0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u5165\u529b\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u884c\u304c\u6761\u4ef6\u306b\u4e00\u81f4\u3057\u305f\u3068\u304d\u306b\u30d6\u30ed\u30c3\u30af\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<br \/>\n\u826f\u304f\u898b\u304b\u3051\u308b\u306e\u306f\u3001<\/p>\n<pre class=\"lang:sh decode:true\">cat access.log | awk '{print $1}'<\/pre>\n<p>\u3068\u3044\u3046\u3082\u306e\u3067\u3059\u304c\u3001\u3053\u308c\u306f\u6761\u4ef6\u3092\u7701\u7565\u3057\u3066\u3044\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002\u5165\u529b\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u306e\u5168\u884c\u306b\u5bfe\u3057\u3066\u5b9f\u884c\u3059\u308b\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u306d\u3002<\/p>\n<p>\u307e\u305f\u7279\u6b8a\u306a\u6761\u4ef6\u3068\u3057\u3066\u3001BEGIN, END\u304c\u3042\u308a\u3001\u305d\u308c\u305e\u308c\u6700\u521d\u3068\u6700\u5f8c\u306b1\u5ea6\u3060\u3051\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u5b9f\u884c\u524d\u306e\u521d\u671f\u8a2d\u5b9a\u3092\u884c\u3063\u305f\u308a\u3001\u6700\u7d42\u7684\u306a\u96c6\u8a08\u7d50\u679c\u3092\u51fa\u529b\u3057\u305f\u308a\u3068\u3044\u3046\u4f7f\u3044\u65b9\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h3>\u5b9f\u884c\u5f62\u5f0f\u30d5\u30a1\u30a4\u30eb\u306b\u3059\u308b<\/h3>\n<p>\u307e\u305f\u3001\u5b9f\u884c\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u8a18\u8ff0\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"lang:sh decode:true\">$ vi sum.awk\r\n#!\/bin\/awk -f\r\n\r\nBEGIN {\r\n  print \"Summary\"\r\n  print \"----------\"\r\n}\r\n\r\n{\r\n  total += $2\r\n}\r\n\r\nEND {\r\n  print \"Count:\", NR\r\n  print \"Total:\", total\r\n}<\/pre>\n<p>\u5b9f\u884c\u306f\u3001<\/p>\n<pre class=\"lang:sh decode:true\">$ cat log | .\/sum.awk\r\nSummary\r\n----------\r\nCount: 3\r\nTotal: 6<\/pre>\n<p>\u3068\u3044\u3063\u305f\u611f\u3058\u3067\u3059\u3002<\/p>\n<h2>\u533a\u5207\u308a\u6587\u5b57\u3092\u5909\u66f4\u3059\u308b<\/h2>\n<p>\u533a\u5207\u308a\u6587\u5b57\u3092\u5909\u66f4\u3059\u308b\u306b\u306f <strong>-F<\/strong> \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<p>\u4f8b\uff1aCSV\u306e\u30a2\u30f3\u30b1\u30fc\u30c8\u7d50\u679c\u304b\u3089\u4e00\u90e8\u3060\u3051\u51fa\u529b<\/p>\n<pre class=\"lang:sh decode:true\">$ cat qa.csv\r\nGENDER,ANSWER1,ANSWER2,ANSWER3\r\n1,1,1,1\r\n2,1,1,1\r\n1,1,2,1\r\n1,2,2,2\r\n$ cat qa.csv | awk -F, '{print $3}'\r\nANSWER2\r\n1\r\n1\r\n2\r\n2<\/pre>\n<p>\u533a\u5207\u308a\u6587\u5b57\u306b\u306f\u6b63\u898f\u8868\u73fe\u3082\u4f7f\u3048\u307e\u3059\u306e\u3067\u3001\u8907\u6570\u6587\u5b57\u306e\u533a\u5207\u308a\u6587\u5b57\u306b\u3082\u5bfe\u5fdc\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u4f8b\uff1a\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u304b\u3089\u6642\u523b\u3060\u3051\u53d6\u5f97<\/p>\n<pre class=\"lang:sh decode:true\">$ cat access_log\r\n192.168.62.58 - - [11\/Nov\/2012:00:00:05 +0900] \"GET \/rss\/rss.rdf HTTP\/1.1\" 301 178 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.000\r\n192.168.62.58 - - [11\/Nov\/2012:00:00:05 +0900] \"GET \/rss\/rss.rdf HTTP\/1.1\" 301 178 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.000\r\n192.168.62.58 - - [11\/Nov\/2012:00:00:06 +0900] \"GET \/ HTTP\/1.1\" 200 21599 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.024\r\n192.168.62.58 - - [11\/Nov\/2012:00:00:06 +0900] \"GET \/ HTTP\/1.1\" 200 21599 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.028\r\n192.168.35.9 - - [11\/Nov\/2012:00:00:16 +0900] \"GET \/rss\/rss.rdf HTTP\/1.0\" 301 178 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.000\r\n192.168.35.9 - - [11\/Nov\/2012:00:00:16 +0900] \"GET \/ HTTP\/1.0\" 200 21599 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.029\r\n$ cat access_log | awk -F'\\\\[|\\\\]' '{ print $2 }'\r\n11\/Nov\/2012:00:00:05 +0900\r\n11\/Nov\/2012:00:00:05 +0900\r\n11\/Nov\/2012:00:00:06 +0900\r\n11\/Nov\/2012:00:00:06 +0900\r\n11\/Nov\/2012:00:00:16 +0900\r\n11\/Nov\/2012:00:00:16 +0900<\/pre>\n<h2>\u3061\u3087\u3063\u3068\u3084\u3084\u3053\u3057\u3044\u4f7f\u3044\u65b9<\/h2>\n<p>\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u304b\u3089\u3001\u65e5\u4ed8\u3001IP\u3001UserAgent\u3092\u53d6\u5f97\u3057\u305f\u3044\uff01\u3068\u3044\u3046\u6642\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u5148\u307b\u3069\u304b\u3089\u5ea6\u3005\u767b\u5834\u3057\u3066\u3044\u308baccess_log\u3092\u4f7f\u3044\u307e\u3059\u3002\u533a\u5207\u308a\u6587\u5b57\u306b\u3001\u30ab\u30ae\u62ec\u5f27\u306b\u30b9\u30da\u30fc\u30b9\u3092\u4f7f\u3048\u3070\u554f\u984c\u306a\u3055\u305d\u3046\u3067\u3059\u306d\u3002<\/p>\n<pre class=\"lang:sh decode:true\">$ cat access_log | awk -F'\\\\[|\\\\]| ' '{print $4, $5, $1, $14, $15}'\r\n 11\/Nov\/2012:00:00:05 192.168.62.58 \"Jakarta Commons-HttpClient\/3.0.1\"\r\n 11\/Nov\/2012:00:00:05 192.168.62.58 \"Jakarta Commons-HttpClient\/3.0.1\"\r\n 11\/Nov\/2012:00:00:06 192.168.62.58 \"Jakarta Commons-HttpClient\/3.0.1\"\r\n 11\/Nov\/2012:00:00:06 192.168.62.58 \"Jakarta Commons-HttpClient\/3.0.1\"\r\n 11\/Nov\/2012:00:00:16 192.168.35.9 \"Jakarta Commons-HttpClient\/3.0.1\"\r\n 11\/Nov\/2012:00:00:16 192.168.35.9 \"Jakarta Commons-HttpClient\/3.0.1\"<\/pre>\n<p>\u4e0a\u624b\u304f\u884c\u3063\u3066\u305d\u3046\u3067\u3059\u304c\u3001\u3068\u3053\u308d\u304c\u2026<\/p>\n<pre class=\"lang:sh decode:true\">$ cat access_log2\r\n192.168.62.58 - - [01\/Oct\/2012:00:00:05 +0900] \"GET \/rss\/rss.rdf HTTP\/1.1\" 301 178 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.000\r\n192.168.35.9 - - [01\/Oct\/2012:00:00:15 +0900] \"GET \/rss\/rss.rdf HTTP\/1.0\" 301 178 \"-\" \"Jakarta Commons-HttpClient\/3.0.1\" \"-\" 0.000\r\n192.168.10.194 - - [01\/Oct\/2012:00:00:23 +0900] \"GET \/rss\/rss.rdf HTTP\/1.1\" 301 178 \"-\" \"Apple-PubSub\/65.28\" \"-\" 0.000\r\n192.168.211.203 - - [01\/Oct\/2012:00:00:30 +0900] \"GET \/rss\/rss.rdf HTTP\/1.1\" 301 178 \"-\" \"Apple-PubSub\/65.28\" \"-\" 0.000\r\n192.168.98.221 - - [01\/Oct\/2012:00:01:37 +0900] \"GET \/rss\/rss.rdf HTTP\/1.1\" 301 178 \"-\" \"livedoor FeedFetcher\/0.01 (http:\/\/reader.livedoor.com\/; 129 subscribers)\" \"-\" 0.000\r\n192.168.157.65 - - [01\/Oct\/2012:00:03:27 +0900] \"GET \/rss\/rss.rdf HTTP\/1.1\" 304 0 \"-\" \"Apple-PubSub\/65.28\" \"-\" 0.002\r\n$ cat access_log2 | awk -F'\\\\[|\\\\]| ' '{print $4, $5, $1, $14, $15}'\r\n 01\/Oct\/2012:00:00:05 192.168.62.58 \"Jakarta Commons-HttpClient\/3.0.1\"\r\n 01\/Oct\/2012:00:00:15 192.168.35.9 \"Jakarta Commons-HttpClient\/3.0.1\"\r\n 01\/Oct\/2012:00:00:23 192.168.10.194 \"Apple-PubSub\/65.28\" \"-\"\r\n 01\/Oct\/2012:00:00:30 192.168.211.203 \"Apple-PubSub\/65.28\" \"-\"\r\n 01\/Oct\/2012:00:01:37 192.168.98.221 \"livedoor FeedFetcher\/0.01\r\n 01\/Oct\/2012:00:03:27 192.168.157.65 \"Apple-PubSub\/65.28\" \"-\"<\/pre>\n<p>\u9055\u3046\u65e5\u306e\u30ed\u30b0\u3067\u306f\u4e0a\u624b\u304f\u884c\u304d\u307e\u305b\u3093\u3002UserAgent\u306f\u8907\u6570\u306e\u30b9\u30da\u30fc\u30b9\u3092\u542b\u3080\u306e\u3067\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u6570\u304c\u5909\u308f\u3063\u3066\u3057\u307e\u3044\u904e\u4e0d\u8db3\u304c\u51fa\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u30b9\u30da\u30fc\u30b9\u3067\u533a\u5207\u308b\u306e\u304c\u826f\u304f\u306a\u3044\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u884c\u306e\u4e2d\u3067\u51fa\u3066\u304f\u308b\u56fa\u5b9a\u306e\u6587\u5b57\u5217\u3068\u3057\u3066\u306f\u3001\u30ab\u30ae\u62ec\u5f27\u304b\u3001\u30c0\u30d6\u30eb\u30af\u30aa\u30fc\u30c8\u3067\u3059\u3002\u30c0\u30d6\u30eb\u30af\u30aa\u30fc\u30c8\u3067\u306fIP\u304c\u4e0a\u624b\u304f\u533a\u5207\u308c\u307e\u305b\u3093\u306d\u3002<\/p>\n<p>\u3053\u3093\u306a\u6642\u306b\u306f\u3001awk\u306esplit\u95a2\u6570\u3092\u4f7f\u3044\u307e\u3057\u3087\u3046\uff01<br \/>\n\u30ab\u30ae\u62ec\u5f27\u3068\u30c0\u30d6\u30eb\u30af\u30aa\u30fc\u30c8\u3067\u5206\u5272\u3059\u308b\u3068\u30011\u3064\u3081\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306bIP\u306a\u3069\u304c\u5165\u308a\u307e\u3059\u3002\u3053\u308c\u3092\u3055\u3089\u306b\u30b9\u30da\u30fc\u30b9\u3067\u5206\u5272\u3059\u308b\u3068\u3044\u3046\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n<pre class=\"lang:sh decode:true\">$ cat access_log2 | awk -F'\\\\[|\\\\]|\"' '{split($1, arr, \" \"); print $2, arr[1], $8}'\r\n01\/Oct\/2012:00:00:05 +0900 192.168.62.58 Jakarta Commons-HttpClient\/3.0.1\r\n01\/Oct\/2012:00:00:15 +0900 192.168.35.9 Jakarta Commons-HttpClient\/3.0.1\r\n01\/Oct\/2012:00:00:23 +0900 192.168.10.194 Apple-PubSub\/65.28\r\n01\/Oct\/2012:00:00:30 +0900 192.168.211.203 Apple-PubSub\/65.28\r\n01\/Oct\/2012:00:01:37 +0900 192.168.98.221 livedoor FeedFetcher\/0.01 (http:\/\/reader.livedoor.com\/; 129 subscribers)\r\n01\/Oct\/2012:00:03:27 +0900 192.168.157.65 Apple-PubSub\/65.28<\/pre>\n<p>\u5148\u307b\u3069\u3068\u306f\u51fa\u529b\u304c\u7570\u306a\u308a\u307e\u3059\u304c\u3001\u6b32\u3057\u3044\u60c5\u5831\u306f\u53d6\u5f97\u3067\u304d\u307e\u3057\u305f\uff01<\/p>\n<p>awk\u304c\u4f7f\u3044\u3053\u306a\u305b\u308b\u3068\u30ed\u30b0\u8abf\u67fb\u3068\u304b\u6357\u308a\u307e\u3059\u306e\u3067\u3001\u65e5\u3005\u7cbe\u9032\u3057\u305f\u3044\u3067\u3059\u306d\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3001\u6cb3\u91ce\u3067\u3059\u3002<\/p>\n<p>\u4fdd\u5b88\u696d\u52d9\u3067\u30ed\u30b0\u3092\u5206\u5272\u3057\u3066\u4e00\u90e8\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u95b2\u89a7\u30fb\u96c6\u8a08\u3059\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u305d\u3093\u306a\u3068\u304d\u306fawk\u304c\u6d3b\u8e8d\u3057\u307e\u3059\u306d\u3002\u4eca\u56de\u306fawk\u306e\u4f7f\u3044\u65b9\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<br \/><a href=\"https:\/\/www.techscore.com\/blog\/2012\/11\/19\/%e3%81%82%e3%81%88%e3%81%a6%e8%a8%80%e3%81%86%e3%81%bb%e3%81%a9%e3%81%a7%e3%81%af%e3%81%aa%e3%81%84%e3%81%91%e3%82%8c%e3%81%a9%e3%82%82%e3%80%81awk%e3%81%ae%e5%8c%ba%e5%88%87%e3%82%8a%e6%96%87\/\">\u7d9a\u304d\u3092\u8aad\u3080...<\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[18],"tags":[54,23,28,58],"_links":{"self":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts\/658"}],"collection":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/comments?post=658"}],"version-history":[{"count":1,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":18017,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts\/658\/revisions\/18017"}],"wp:attachment":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/media?parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/categories?post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/tags?post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}