{"id":1547,"date":"2021-05-21T09:56:49","date_gmt":"2021-05-21T01:56:49","guid":{"rendered":"http:\/\/www.821121.com\/?p=1547"},"modified":"2021-06-03T10:01:17","modified_gmt":"2021-06-03T02:01:17","slug":"linux-shell-%e6%96%87%e6%9c%ac%e5%a4%84%e7%90%86%e5%b7%a5%e5%85%b7%e4%b9%8bawk","status":"publish","type":"post","link":"http:\/\/www.821121.com\/?p=1547","title":{"rendered":"linux Shell \u6587\u672c\u5904\u7406\u5de5\u5177\u4e4bAWK"},"content":{"rendered":"<p>awk\u5e38\u7528\u793a\u4f8b<br \/>\n1\u3001\u901a\u8fc7awk\u5224\u65ad\u7cfb\u7edf\u7684\u7528\u6237\u90fd\u5c5e\u4e8e\u4ec0\u4e48\u7528\u6237\uff1a<\/p>\n<pre><code class=\"language-shell\">[root@Docker ~]# awk -F &#039;:&#039; &#039;{if($3 == 0 )print &quot;\u8d85\u7ea7\u7ba1\u7406\u5458: &quot;$1}{if($3 &gt; 0 &amp;&amp; $3 &lt; 1000)print &quot;\u7cfb\u7edf\u7528\u6237: &quot;$1}{if($3 &gt;= 1000)print &quot;\u81ea\u5efa\u7528\u6237\uff1a&quot;$1}&#039; \/etc\/passwd<\/code><\/pre>\n<p>2\u3001\u663e\u793a\u51fa\u5305\u542bLee\u548c\u5305\u542bkevin\u7684\u884c\u7684\u4e2d\u95f4\u884c<\/p>\n<pre><code class=\"language-shell\">[root@oldboy_50 tmp]# cat test.txt \nAllen Phillips\nGreen Lee\nWilliam Aiden James Lee\nAngel Jack\nTyler Kevin\nLucas Thomas\nKevin<\/code><\/pre>\n<p>\u8be6\u89e3\uff1a<\/p>\n<pre><code class=\"language-shell\">awk &#039;\/Lee\/,\/kevin\/{print $0}&#039; test.txt<\/code><\/pre>\n<p>3\u3001awk\u53d6\u6307\u5b9a\u8303\u56f4\u7684\u5217\uff1a<\/p>\n<pre><code class=\"language-shell\">awk -F : &#039;{for(i=3;i&lt;=5;i++)printf&quot;%s &quot;,$i;printf&quot;\\n&quot;}&#039; \/etc\/passwd<\/code><\/pre>\n<p>4\u3001\u5982\u4f55\u628a\/etc\/passwd\u6587\u4ef6\u91cc\u9762\u7684':' \u5168\u90e8\u66ff\u6362\u6210\u7a7a\u683c<\/p>\n<pre><code class=\"language-shell\">awk &#039;{gsub(\/:\/,&quot; &quot;,$0);print $0}&#039; passwd\nsed -n &quot;s#:# #gp&quot; passwd \nawk -F &quot;:&quot; -vOFS=&quot; &quot; &#039;{$1=$1;print $0}&#039; passwd\nawk -F &quot;:&quot; -v OFS=&quot; &quot; &#039;{for(i=1;i&lt;NF;i++)printf&quot;%s &quot;,$i;printf&quot;\\n&quot;}&#039;\npasswd\n\u5982\u679c$0\u53d1\u751f\u4e86\u6539\u53d8\uff08\u901a\u8fc7\u8d4b\u503c\u6216\u8005\u66ff\u6362\uff09\uff0c\u90a3\u4e48$1,$2\u4ee5\u53caNF\u5c31\u4f1a\u88ab\u91cd\u65b0\u8ba1\u7b97\uff0c\u540c\u6837\u7684\u9053\u7406\uff0c\n\u5f53$1\u6216\u8005$2\u88ab\u6539\u53d8\u4e86\uff0c\u90a3\u4e48$0\u5c31\u4f1a\u88ab\u91cd\u65b0\u6784\u9020\uff0c\u6784\u9020\u7684\u65b9\u5f0f\u662f\u4f7f\u7528OFS\u2028\u91cd\u65b0\u5206\u9694\u5b57\u7b26<\/code><\/pre>\n<p>5\u3001sed awk\u6392\u9664\u914d\u7f6e\u6587\u4ef6\u91cc\u9762\u6ca1\u7528\u7684\u884c\uff08\u914d\u7f6e\u6587\u4ef6\u91cc\u9762\u7684\u7a7a\u884c\u548c\u542b\u6709#\u53f7\u5f00\u5934\u7684\u884c\uff09<\/p>\n<pre><code class=\"language-shell\">sed -ri &#039;\/^ *(#.*)?$\/&#039;d sshd_config\nawk &#039;!\/^ *(#.*)?$\/{print $0}&#039; sshd_config <\/code><\/pre>\n<p>6\u3001\u5982\u4f55\u7528awk\u53d6\u51fa\u6765\u6700\u591a\u5217\u6570\u6240\u5728\u7684\u54ea\u4e00\u884c\u884c\u53f7<br \/>\n\u6d4b\u8bd5\u73af\u5883\uff1a<\/p>\n<pre><code class=\"language-shell\">[root@LornBlood tmp]# cat 1.txt \n1\n1 2\n1 2 3\n1 2 3 4\n1 2 3 4 5\n3 4 5 1 2 3 4 5 6 7 8\n1 2 3 4 5 6\n1 2 3 4 5 6 7<\/code><\/pre>\n<p>\u8be6\u89e3\uff1a<\/p>\n<pre><code class=\"language-shell\">awk &#039;BEGIN{lin=0;nf=0}{if(nf &lt; NF){lin=NR;nf=NF}}END{print &quot;\u884c\u53f7\uff1a&quot;lin,&quot;\u5217\u6570\uff1a&quot;nf}&#039; 1.txt <\/code><\/pre>\n<p>7\u3001\u8f93\u51fa\u5b57\u7b26\u4e32\u6700\u884c\u7684\u884c\u53f7<br \/>\n\u6d4b\u8bd5\u73af\u5883\uff1a<\/p>\n<pre><code class=\"language-shell\">[root@LornBlood tmp]# cat 1.txt \n1\n1 2\n1 2 3\n1 2 3 4\n1 2 3 4 5\n3 4 5 1 2 3 4 5 6 7 8\n1 2 3 4 5 6\n1 2 3 4 5 6 7<\/code><\/pre>\n<p>\u8be6\u89e3\uff1a<\/p>\n<pre><code class=\"language-shell\">awk &#039;{if(length($0) &gt; LE ){LE=length($0);nr=NR}}END{print LE,nr}&#039; \/etc\/passwd<\/code><\/pre>\n<p>8\u3001\u663e\u793aXiaoyu\u7684\u6350\u6b3e.\u6bcf\u4e2a\u503c\u65f6\u90fd\u6709\u4ee5$\u5f00\u5934.\u5982$520$200$135\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528sed\uff0c\u548cOFS<\/p>\n<pre><code class=\"language-shell\">cat &gt;&gt;reg.txt&lt;&lt;EOF\nZhang Dandan    41117397   :250:100:175\nZhang Xiaoyu    390320151  :155:90:201\nMeng  Feixue    80042789   :250:60:50\nWu    Waiwai    70271111   :250:80:75\nLiu   Bingbing  41117483   :250:100:175\nWang  Xiaoai    3515064655 :50:95:135\nZi    Gege      1986787350 :250:168:200\nLi    Youjiu    918391635  :175:75:300\nLao   Nanhai    918391635  :250:100:175\nEOF<\/code><\/pre>\n<p>\u8be6\u89e3\uff1a<\/p>\n<pre><code class=\"language-shell\">awk  &#039;$2~\/Xiaoyu\/{gsub(&quot;:&quot;,&quot;$&quot;,$NF);print $NF}&#039; reg.txt<\/code><\/pre>\n<p>9\u3001\u751f\u6210\u4e00\u4e2a\u968f\u673a\u7684\u4e09\u4f4d\u6570<\/p>\n<pre><code class=\"language-shell\">awk &#039;BEGIN{ srand() ; print int( rand() * 1000 ) }&#039; \/etc\/passwd<\/code><\/pre>\n<p>\u8be6\u89e3\uff1a<\/p>\n<pre><code class=\"language-shell\">rand\u5982\u679c\u4e0d\u914d\u5408srand\u4f7f\u7528\u7684\u8bdd\uff0c\u4ea7\u751f\u7684\u968f\u673a\u6570\u90fd\u662f\u56fa\u5b9a\u7684\nrand\u4ea7\u751f\u7684\u968f\u673a\u6570\u8303\u56f4\u662f   0 &lt;= rand() &lt;1 \u7684\u53d6\u4e09\u4f4d\u6570\uff0c\u6211\u4eec\u5c31\u628arand\uff08\uff09* 1000\u7136\u540e\u5728\u53bb\u4ed6\u6574\u6570\u90e8\u5206\u7684\u503c\u5373\u53ef\nsrand() \u5fc5\u987b\u5728BEGIN\u6a21\u5757\u91cc\u9762<\/code><\/pre>\n<p>10\u3001\u6c42\u4e00\u4e2a\u6587\u4ef6\u91cc\u9762 \u20181\u2019 \u5b57\u7b26\u51fa\u73b0\u7684\u6b21\u6570\uff1a<\/p>\n<pre><code class=\"language-shell\">awk &#039;{a=gsub(\/1\/,&quot;Q&quot;);sum = sum + a ; print $0,a}END{print &quot;\u4e00\u5171\u66ff\u6362\u4e86\uff1a&quot;sum}&#039; reg.txt<\/code><\/pre>\n<p>\u8be6\u89e3\uff1a<br \/>\n\u6211\u4eec\u76f4\u63a5\u6c42\u6587\u4ef6\u91cc\u97621\u51fa\u73b0\u7684\u6b21\u6570\u4e0d\u597d\u6c42\uff0c\u6211\u4eec\u53ef\u4ee5\u5229\u7528gsub\u8fd4\u56de\u66ff\u6362\u6b21\u6570\u7684\u7279\u6027\u6765\u89e3\u7b54\u8fd9\u4e2a<\/p>\n<p>11\u3001\u7edf\u8ba1\u8fd9\u4e2a\u65e5\u5fd7\u6587\u4ef6\u4e2dsecure-20161219\uff0c\u522b\u4eba\u4e00\u4e2aip\u5730\u5740\u7834\u89e3\u4e86\u6211\u4eec\u54ea\u4e9b\u7528\u6237\u7684\u5bc6\u7801\uff0c\u4e00\u4e2a\u7528\u6237\u88ab\u54ea\u4e9bIP\u5730\u5740\u7834\u89e3\u4e86<\/p>\n<pre><code class=\"language-shell\">awk &#039;\/Failed\/ { sum[$(NF-3)&quot; &quot;$(NF-5)]++}END{for(i in sum) print sum[i],i}&#039; secure-20161219 |grep [ user_name | IP ]<\/code><\/pre>\n<p>12\u3001\u628a\u8fd9\u4e2a\u4e24\u4e2a\u6587\u4ef6\u90fd\u5b58\u5728\u7684\u7528\u6237\u7684\u5bc6\u7801\u8f93\u51fa\u51fa\u6765<\/p>\n<pre><code class=\"language-shell\">[root@sentinel student]# head file1 file2 \n==&gt; file1 &lt;==\noldboy   1234\nalex    4567\nlidao   9999\n\n==&gt; file2 &lt;==\n001 lidao\n002 alex\n003 oldboy\n004 oldgirl\n\u63d0\u793a\uff1a\u9700\u8981\u7528\u5230\u5982\u4f55\u5224\u65ad\u8fd9\u4e24\u4e2a\u6587\u4ef6\u4e0d\u662f\u4e00\u4e2a\u6587\u4ef6\u3002<\/code><\/pre>\n<p>\u8be6\u89e3\uff1a<\/p>\n<pre><code class=\"language-shell\">awk &#039;FNR==NR{h[$1]=$2}FNR!=NR{print h[$2]}&#039; file1 file2 \nawk &#039;FNR==NR{h[$1]=$2;next}{print h[$2]}&#039; file1 file2 \n\/\/next \u6ee1\u8db3\u524d\u9762\u8fd9\u4e2a\u6761\u4ef6\u5c31\u4e0d\u6267\u884c\u540e\u9762\u7684\u5185\u5bb9\u4e86\n\n#!\/bin\/bash\nfor i in `awk &#039;{print $1}&#039; file1`\ndo\n    for j in `awk &#039;{print $2}&#039; file2`\n        do\n        if [ $i == $j ];then\n            awk &#039;$1~\/&#039;$i&#039;\/{print $2}&#039; file1\n        fi\n        done\ndone<\/code><\/pre>\n<p>\u7edd\u671b\u7cfb\u5217<\/p>\n<pre><code class=\"language-shell\">\u6bcf\u5468\u7edd\u671b\u539f\u6570\u636e\u6587\u4ef6\uff1a\nid=aa&amp;bb&amp;type&amp;name=cc\nbb&amp;id=aa&amp;name=cc&amp;type\nid=aa&amp;type&amp;bb&amp;name=dd\ntype&amp;id=aa&amp;cc&amp;name=bb\nid=bb&amp;cc&amp;type&amp;name=bb\naa&amp;id=bb&amp;name=bb&amp;type\n\n\u6574\u7406\u5e76\u53bb\u91cd,\u5f97\u5230\u6548\u679c\uff1a\nid=aa&amp;bb&amp;name=cc&amp;type\nid=aa&amp;bb&amp;name=dd&amp;type\nid=aa&amp;cc&amp;name=bb&amp;type\nid=bb&amp;cc&amp;name=bb&amp;type\nid=bb&amp;aa&amp;name=bb&amp;type\n\u63d0\u793a\uff1aawk\u5faa\u73af\u3001\u5224\u65ad\u3001\u53d8\u91cf\u8d4b\u503c\u3001\u53bb\u91cd\u673a\u5236<\/code><\/pre>\n<p>\u8be6\u89e3<\/p>\n<pre><code class=\"language-shell\">awk -F &#039;&amp;&#039; -v OFS=&#039;&amp;&#039; &#039;{for(i=1;i&lt;=4;i++)printf&quot;%s&quot; $i;printf &quot;\\n&quot;}&#039; awk.txt   \u5b9e\u73b0\u6bcf\u4e2a\u904d\u5386\u4e86\nawk -F &#039;&amp;&#039; -v OFS=&#039;&amp;&#039; &#039;{for(i=1;i&lt;=4;i++){if($i~\/^id.$\/)A=$i;if($i~\/^[a-z]{2}$\/)B=$i;if($i~\/^name.\/)C=$i;if($i~\/^type$\/)D=$i}print A,B,C,D}&#039; awk.txt\necho {a..z} | xargs -n 1 &gt;awk.txt\n\u5229\u7528awk\u53bb\u9664g\u6240\u5728\u884c\u7684\u4e0a\u4e0b5\u884c\nfor j in awk &#039;\/^j$\/{for(i=NR-5;i&lt;=NR+5;i++)print i}&#039; 1.txt;do awk -v j=$j &#039;NR==j{print $0}&#039; 1.txt;done<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>awk\u5e38\u7528\u793a\u4f8b 1\u3001\u901a\u8fc7awk\u5224\u65ad\u7cfb\u7edf\u7684\u7528\u6237\u90fd\u5c5e\u4e8e<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[],"class_list":["post-1547","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"http:\/\/www.821121.com\/index.php?rest_route=\/wp\/v2\/posts\/1547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.821121.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.821121.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.821121.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.821121.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1547"}],"version-history":[{"count":2,"href":"http:\/\/www.821121.com\/index.php?rest_route=\/wp\/v2\/posts\/1547\/revisions"}],"predecessor-version":[{"id":1550,"href":"http:\/\/www.821121.com\/index.php?rest_route=\/wp\/v2\/posts\/1547\/revisions\/1550"}],"wp:attachment":[{"href":"http:\/\/www.821121.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.821121.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1547"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.821121.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}