doc: update awk.md. e145ecc715

This commit is contained in:
jaywcjlove
2022-10-30 16:12:41 +00:00
parent 2a1473166d
commit c34f66572d

View File

@ -283,7 +283,7 @@
<table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>$1 == "root"</code></td><td align="left">第一个字段等于根</td></tr><tr><td align="left"><code>{print $(NF-1)}</code></td><td align="left">倒数第二个字段</td></tr><tr><td align="left"><code>NR!=1{print $0}</code></td><td align="left">从第 2 条记录开始</td></tr><tr><td align="left"><code>NR > 3</code></td><td align="left">从第 4 条记录开始</td></tr><tr><td align="left"><code>NR == 1</code></td><td align="left">第一次记录</td></tr><tr><td align="left"><code>END{print NR}</code></td><td align="left">总记录</td></tr><tr><td align="left"><code>BEGIN{print OFMT}</code></td><td align="left">输出格式</td></tr><tr><td align="left"><code>{print NR, $0}</code></td><td align="left">行号</td></tr><tr><td align="left"><code>{print NR " " $0}</code></td><td align="left">行号选项卡</td></tr><tr><td align="left"><code>{$1 = NR; print}</code></td><td align="left">用行号替换第一个字段</td></tr><tr><td align="left"><code>$NF > 4</code></td><td align="left">最后一个字段 > 4</td></tr><tr><td align="left"><code>NR % 2 == 0</code></td><td align="left">甚至记录</td></tr><tr><td align="left"><code>NR==10, NR==20</code></td><td align="left">记录 10 到 20</td></tr><tr><td align="left"><code>BEGIN{print ARGC}</code></td><td align="left"><code>arguments</code></td></tr><tr><td align="left"><code>ORS=NR%5?",":"\n"</code></td><td align="left">连接记录</td></tr></tbody></table> <table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>$1 == "root"</code></td><td align="left">第一个字段等于根</td></tr><tr><td align="left"><code>{print $(NF-1)}</code></td><td align="left">倒数第二个字段</td></tr><tr><td align="left"><code>NR!=1{print $0}</code></td><td align="left">从第 2 条记录开始</td></tr><tr><td align="left"><code>NR > 3</code></td><td align="left">从第 4 条记录开始</td></tr><tr><td align="left"><code>NR == 1</code></td><td align="left">第一次记录</td></tr><tr><td align="left"><code>END{print NR}</code></td><td align="left">总记录</td></tr><tr><td align="left"><code>BEGIN{print OFMT}</code></td><td align="left">输出格式</td></tr><tr><td align="left"><code>{print NR, $0}</code></td><td align="left">行号</td></tr><tr><td align="left"><code>{print NR " " $0}</code></td><td align="left">行号(选项卡)</td></tr><tr><td align="left"><code>{$1 = NR; print}</code></td><td align="left">用行号替换第一个字段</td></tr><tr><td align="left"><code>$NF > 4</code></td><td align="left">最后一个字段 > 4</td></tr><tr><td align="left"><code>NR % 2 == 0</code></td><td align="left">甚至记录</td></tr><tr><td align="left"><code>NR==10, NR==20</code></td><td align="left">记录 10 到 20</td></tr><tr><td align="left"><code>BEGIN{print ARGC}</code></td><td align="left"><code>arguments</code></td></tr><tr><td align="left"><code>ORS=NR%5?",":"\n"</code></td><td align="left">连接记录</td></tr></tbody></table>
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="示例-1"><a aria-hidden="true" tabindex="-1" href="#示例-1"><span class="icon icon-link"></span></a>示例</h3><div class="wrap-body"> </div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="示例-1"><a aria-hidden="true" tabindex="-1" href="#示例-1"><span class="icon icon-link"></span></a>示例</h3><div class="wrap-body">
<p>打印总和和平均值</p> <p>打印总和和平均值</p>
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">awk</span> -F: <span class="token string">'{sum += $3} <pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">awk</span> -F: <span class="token string">'{sum += $3}
@ -585,7 +585,7 @@
<table><thead><tr><th align="left">函数</th><th align="left">描述</th></tr></thead><tbody><tr><td align="left"><code>index(s,t)</code></td><td align="left">字符串 <code>s</code> 中出现字符串 <code>t</code> 的位置,如果未找到则为 <code>0</code></td></tr><tr><td align="left"><code>length(s)</code></td><td align="left">字符串 <code>s</code> 的长度如果没有 <code>arg</code>,则为 <code>$0</code></td></tr><tr><td align="left"><code>rand</code></td><td align="left"><code>0</code><code>1</code> 之间的随机数</td></tr><tr><td align="left"><code>substr(s,index,len)</code></td><td align="left">返回从索引开始的 <code>s</code><code>len-char</code> 子字符串<code>1</code> 开始计数</td></tr><tr><td align="left"><code>srand</code></td><td align="left"><code>rand</code> 设置种子并返回之前的种子</td></tr><tr><td align="left"><code>int(x)</code></td><td align="left"><code>x</code> 截断为整数值</td></tr><tr><td align="left"><code>split(s,a,fs)</code></td><td align="left">将字符串 <code>s</code> 拆分为数组 <code>a</code><code>fs</code> 拆分,返回 <code>a</code> 的长度</td></tr><tr><td align="left"><code>match(s,r)</code></td><td align="left">字符串 <code>s</code> 中出现正则表达式 <code>r</code> 的位置,如果未找到,则为 <code>0</code></td></tr><tr><td align="left"><code>sub(r,t,s)</code></td><td align="left"><code>t</code> 替换为字符串 <code>s</code> 中第一次出现的正则表达式 <code>r</code>如果未给出 <code>s</code>,则替换为 <code>$0</code></td></tr><tr><td align="left"><code>gsub(r,t,s)</code></td><td align="left"><code>t</code> 替换字符串 <code>s</code> 中所有出现的正则表达式 <code>r</code></td></tr><tr><td align="left"><code>system(cmd)</code></td><td align="left">执行cmd并返回退出状态</td></tr><tr><td align="left"><code>tolower(s)</code></td><td align="left">字符串 <code>s</code> 转小写</td></tr><tr><td align="left"><code>toupper(s)</code></td><td align="left">字符串 <code>s</code> 转大写</td></tr><tr><td align="left"><code>getline</code></td><td align="left"><code>$0</code> 设置为当前输入文件中的下一个输入记录</td></tr></tbody></table> <table><thead><tr><th align="left">函数</th><th align="left">描述</th></tr></thead><tbody><tr><td align="left"><code>index(s,t)</code></td><td align="left">字符串 <code>s</code> 中出现字符串 <code>t</code> 的位置,如果未找到则为 <code>0</code></td></tr><tr><td align="left"><code>length(s)</code></td><td align="left">字符串 <code>s</code> 的长度(如果没有 <code>arg</code>,则为 <code>$0</code>)</td></tr><tr><td align="left"><code>rand</code></td><td align="left"><code>0</code><code>1</code> 之间的随机数</td></tr><tr><td align="left"><code>substr(s,index,len)</code></td><td align="left">返回从索引开始的 <code>s</code><code>len-char</code> 子字符串(<code>1</code> 开始计数)</td></tr><tr><td align="left"><code>srand</code></td><td align="left"><code>rand</code> 设置种子并返回之前的种子</td></tr><tr><td align="left"><code>int(x)</code></td><td align="left"><code>x</code> 截断为整数值</td></tr><tr><td align="left"><code>split(s,a,fs)</code></td><td align="left">将字符串 <code>s</code> 拆分为数组 <code>a</code><code>fs</code> 拆分,返回 <code>a</code> 的长度</td></tr><tr><td align="left"><code>match(s,r)</code></td><td align="left">字符串 <code>s</code> 中出现正则表达式 <code>r</code> 的位置,如果未找到,则为 <code>0</code></td></tr><tr><td align="left"><code>sub(r,t,s)</code></td><td align="left"><code>t</code> 替换为字符串 <code>s</code> 中第一次出现的正则表达式 <code>r</code>(如果未给出 <code>s</code>,则替换为 <code>$0</code>)</td></tr><tr><td align="left"><code>gsub(r,t,s)</code></td><td align="left"><code>t</code> 替换字符串 <code>s</code> 中所有出现的正则表达式 <code>r</code></td></tr><tr><td align="left"><code>system(cmd)</code></td><td align="left">执行cmd并返回退出状态</td></tr><tr><td align="left"><code>tolower(s)</code></td><td align="left">字符串 <code>s</code> 转小写</td></tr><tr><td align="left"><code>toupper(s)</code></td><td align="left">字符串 <code>s</code> 转大写</td></tr><tr><td align="left"><code>getline</code></td><td align="left"><code>$0</code> 设置为当前输入文件中的下一个输入记录</td></tr></tbody></table>
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="用户定义函数"><a aria-hidden="true" tabindex="-1" href="#用户定义函数"><span class="icon icon-link"></span></a>用户定义函数</h3><div class="wrap-body"> </div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="用户定义函数"><a aria-hidden="true" tabindex="-1" href="#用户定义函数"><span class="icon icon-link"></span></a>用户定义函数</h3><div class="wrap-body">
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">awk</span> <span class="token string">' <pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">awk</span> <span class="token string">'
</span></span><span class="code-line"><span class="token string"> # Returns minimum number </span></span><span class="code-line"><span class="token string"> # Returns minimum number
@ -932,7 +932,7 @@
<table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>\b</code></td><td align="left">退格</td></tr><tr><td align="left"><code>\f</code></td><td align="left">换页</td></tr><tr><td align="left"><code>\n</code></td><td align="left">换行换行</td></tr><tr><td align="left"><code>\r</code></td><td align="left">回车</td></tr><tr><td align="left"><code>\t</code></td><td align="left">水平选项卡</td></tr><tr><td align="left"><code>\v</code></td><td align="left">垂直选项卡</td></tr></tbody></table> <table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>\b</code></td><td align="left">退格</td></tr><tr><td align="left"><code>\f</code></td><td align="left">换页</td></tr><tr><td align="left"><code>\n</code></td><td align="left">换行(换行)</td></tr><tr><td align="left"><code>\r</code></td><td align="left">回车</td></tr><tr><td align="left"><code>\t</code></td><td align="left">水平选项卡</td></tr><tr><td align="left"><code>\v</code></td><td align="left">垂直选项卡</td></tr></tbody></table>
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="运行脚本"><a aria-hidden="true" tabindex="-1" href="#运行脚本"><span class="icon icon-link"></span></a>运行脚本</h3><div class="wrap-body"> </div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="运行脚本"><a aria-hidden="true" tabindex="-1" href="#运行脚本"><span class="icon icon-link"></span></a>运行脚本</h3><div class="wrap-body">
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">cat</span> demo.awk <pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">cat</span> demo.awk
</span><span class="code-line"><span class="token comment">#!/usr/bin/awk -f</span> </span><span class="code-line"><span class="token comment">#!/usr/bin/awk -f</span>