{"id":6199,"date":"2014-08-03T23:37:45","date_gmt":"2014-08-03T15:37:45","guid":{"rendered":"http:\/\/jpuyy.com\/?p=6199"},"modified":"2021-02-20T14:30:39","modified_gmt":"2021-02-20T06:30:39","slug":"awk-examples","status":"publish","type":"post","link":"https:\/\/jpuyy.com\/?p=6199","title":{"rendered":"awk\u4f7f\u7528\u65b9\u6cd5"},"content":{"rendered":"<p>awk\u7b97\u662f\u4e00\u95e8\u5f88\u5f3a\u5927\u7684\u8bed\u8a00\uff0c\u8fd9\u91cc\u53ea\u6709\u5e38\u7528\u7684\u4e00\u4e9b\u547d\u4ee4<\/p>\n<p>awk \u7684\u7279\u6027<\/p>\n<ul>\n<li>awk \u80fd\u6309\u884c\uff0c\u5217\u8bfb\u53d6\u6587\u4ef6<\/li>\n<li>\u548c\u5176\u4ed6\u8bed\u8a00\u4e00\u6837\uff0c\u6709\u53d8\u91cf\uff0c\u6761\u4ef6\uff0c\u5faa\u73af<\/li>\n<li>\u6709\u8ba1\u7b97\u548c\u5b57\u7b26\u4e32\u64cd\u4f5c<\/li>\n<li>\u53ef\u4ee5\u751f\u6210\u683c\u5f0f\u5316\u7684\u8f93\u51fa<\/li>\n<\/ul>\n<p>\u8bed\u6cd5\u8981\u6ce8\u610f<\/p>\n<pre>awk '\/search pattern1\/ {Actions}\r\n     \/search pattern2\/ {Actions}' file<\/pre>\n<ul>\n<li>search \u53ef\u4ee5\u662f\u6b63\u5219\u8868\u8fbe\u5f0f<\/li>\n<li>action \u4e3a\u8981\u6267\u884c\u7684\u52a8\u4f5c<\/li>\n<li>\u7a0b\u5e8f\u4e2d\u95f4\u8981\u7528\u5355\u5f15\u53f7\u5f15\u8d77\u6765<\/li>\n<\/ul>\n<p>\u5339\u914d\u7b26<\/p>\n<p>~ \u5339\u914d<br \/>\n!~ \u4e0d\u5339\u914d<\/p>\n<p>\u7279\u6b8a\u53d8\u91cf<br \/>\nNF \u5b57\u6bb5\u4e2a\u6570<br \/>\nNR \u8bb0\u5f55\u4e2a\u6570(\u884c\u6570)<br \/>\nFS filed separator<\/p>\n<p>awk\u53d6\u51fa\u6307\u5b9a\u884c\uff0c\u5982\u7b2c20\u884c<\/p>\n<pre class=\"p1\">cat \/etc\/hosts | awk 'NR==20'<\/pre>\n<p>awk\u53d6\u51fa\u5076\u6570\u884c<\/p>\n<pre>awk 'NR % 2 == 0' \/etc\/passwd<\/pre>\n<p>awk\u53d6\u51fa\u67093\u5217\u7684\u884c<\/p>\n<pre>cat \/etc\/hosts | awk 'NF==3'<\/pre>\n<p>\u6253\u5370\u51fa\u6307\u5b9a\u5217<\/p>\n<pre class=\"p1\">cat \/etc\/hosts | awk '{print $2}'<\/pre>\n<p>\u6253\u5370\u51fa\u6700\u540e\u4e00\u5217\uff0c\u5217\u7684\u957f\u5ea6\u53c2\u5dee\u4e0d\u9f50\uff0c\u4e5f\u662f\u6253\u5370\u6700\u540e\u4e00\u5217<\/p>\n<pre class=\"p1\">cat \/etc\/hosts | awk '{print $NF}'<\/pre>\n<p>\u5229\u7528\u6c42\u4f59\u6570\u7684\u65b9\u6cd5\u53d6\u51fa\u67d0\u6587\u4ef6\u7684\u968f\u673a\u4e00\u884c<\/p>\n<pre>countline=`cat swapfile | wc -l`\r\n awk \"NR==$(($RANDOM%$countline))\" swapfile<\/pre>\n<p>\u6307\u5b9a\u5206\u9694\u7b26\u4e3a=\u53f7<\/p>\n<pre>awk -F '=' '{print $2}'<\/pre>\n<p>\u5206\u6790\u65e5\u5fd7\u4e2d \u8bf7\u6c42\u7684 host \u662f my.jpuyy.com \u4e14 \u72b6\u6001\u662f200<\/p>\n<pre>tail -n 10  nginx_access.log | awk -F' '  '$2==\"my.jpuyy.com\" &amp;&amp; $10==200 {print $10}'<\/pre>\n<p>$0\u4ee3\u8868\u4e86\u5168\u90e8\uff0c\u6253\u5370\u5168\u90e8 {print $0}<\/p>\n<pre>tail -n 10  nginx_access.log | awk -F' '  '$2==\"my.jpuyy.com\" &amp;&amp; $10==200 {print $0}'<\/pre>\n<p>\u6253\u5370\u6bcf\u4e00\u4e2afiled<\/p>\n<pre>echo '11,13,15,61,3' | awk -F ',' '{for (i=1; i&lt;=NF; i++) print $i}'<\/pre>\n<p>\u6253\u5370\u65f6\u4e0e\u5b57\u4f1a\u4e32\u62fc\u63a5\uff0c\u7528\u53cc\u5f15\u53f7\u5f15\u8d77\u6765<\/p>\n<pre>echo '11,13,15,61,3' | awk -F ',' '{for (i=1; i&lt;=NF; i++) print \"192.168.1.\"$i}'<\/pre>\n<p>awk \u4e0e grep \u7b49\u4ef7\u547d\u4ee4<\/p>\n<pre>cat my.log | grep error\r\n\u7b49\u540c\u4e8e\r\nawk '$0 ~ \"error\" {print $0}' my.log<\/pre>\n<p>\u4f7f\u7528 printf \u6253\u5370\u6307\u5b9a\u683c\u5f0f<br \/>\n\u4e0b\u9762\u662f\u53d6\u51fa nginx log \u4e2d GET \u8bf7\u6c42\uff0c\u628a\u5176\u4e2d $3, $9 \u4ee5 , \u5206\u9694\uff0c\u5e76\u52a0\u4e0a\u6362\u884c\u8f93\u51fa\u5230 csv \u4e2d<\/p>\n<pre>cat nginx_access.log-20160410 | awk '$8==\"GET\" {printf \"%s,%s\\n\", $3,$9}' &gt;&gt; nginx_access.log-20160410.csv<\/pre>\n<p>\u628a\u6307\u5b9a\u5217\u505a\u52a0\u6cd5\uff0c\u5982\u6700\u540e\u4e00\u5217<\/p>\n<pre>awk '{sum+=$NF} END {print sum}'<\/pre>\n<p>\u628a\u6700\u540e\u4e00\u5217\u8e22\u9664\u6389<\/p>\n<pre>awk '{$NF=\"\"; print $0}' file<\/pre>\n<p>\u5168\u90e8\u53d8\u4e3a\u5927\u5199<\/p>\n<pre>awk '{print tolower($0)}'<\/pre>\n<p>\u5168\u90e8\u53d8\u4e3a\u5c0f\u5199<\/p>\n<pre>awk '{print toupper($0)}'<\/pre>\n<p>\u7edf\u8ba1\u76ee\u5f55\u5927\u5c0f\uff0c\u5305\u542b G \u7684\u76ee\u5f55<\/p>\n<pre>du -sh * | awk '$1 ~ \/G\/ { print }'\r\n<\/pre>\n<p>\u6253\u5370 hostname \u524d\u4e09\u4e2a\u5b57\u7b26<\/p>\n<pre>\r\nhostname  | awk '{print substr($0,1,3)}'\r\nhostname | cut -c 1-3\r\necho ${HOSTNAME:0:3}\r\n<\/pre>\n<p>\u5947\u6570\u884c\u548c\u5076\u6570\u884c\u5408\u5e76<\/p>\n<pre>\r\nawk 'NR%2==0 {print p\" \"$0;} NR%2 {p=$0;}' \r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>awk\u7b97\u662f\u4e00\u95e8\u5f88\u5f3a\u5927\u7684\u8bed\u8a00\uff0c\u8fd9\u91cc\u53ea\u6709\u5e38\u7528\u7684\u4e00\u4e9b\u547d\u4ee4 awk \u7684\u7279\u6027 awk \u80fd\u6309\u884c\uff0c\u5217\u8bfb\u53d6\u6587\u4ef6 \u548c\u5176\u4ed6\u8bed\u8a00\u4e00\u6837\uff0c\u6709\u53d8\u91cf\uff0c\u6761\u4ef6\uff0c\u5faa\u73af \u6709\u8ba1\u7b97\u548c\u5b57\u7b26\u4e32\u64cd\u4f5c \u53ef\u4ee5\u751f\u6210\u683c\u5f0f\u5316\u7684\u8f93\u51fa \u8bed\u6cd5\u8981\u6ce8\u610f awk &#8216;\/search pattern1\/ {Actions} \/search pattern2\/ {Actions}&#8217; file search \u53ef\u4ee5\u662f\u6b63\u5219\u8868\u8fbe\u5f0f action \u4e3a\u8981\u6267\u884c\u7684\u52a8\u4f5c \u7a0b\u5e8f\u4e2d\u95f4\u8981\u7528\u5355\u5f15\u53f7\u5f15\u8d77\u6765 \u5339\u914d\u7b26 ~ \u5339\u914d !~ \u4e0d\u5339\u914d \u7279\u6b8a\u53d8\u91cf NF \u5b57\u6bb5\u4e2a\u6570 NR \u8bb0\u5f55\u4e2a\u6570(\u884c\u6570) FS filed separator awk\u53d6\u51fa\u6307\u5b9a\u884c\uff0c\u5982\u7b2c20\u884c cat \/etc\/hosts | awk &#8216;NR==20&#8217; awk\u53d6\u51fa\u5076\u6570\u884c awk &#8216;NR % 2 == 0&#8217; \/etc\/passwd awk\u53d6\u51fa\u67093\u5217\u7684\u884c cat \/etc\/hosts | awk &#8216;NF==3&#8217; [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-6199","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts\/6199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6199"}],"version-history":[{"count":31,"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts\/6199\/revisions"}],"predecessor-version":[{"id":9271,"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts\/6199\/revisions\/9271"}],"wp:attachment":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}