📄 ch11_10.htm
字号:
<html><head><title>Alphabetical Summary of Functions and Commands (UNIX in a Nutshell: System V Edition)</title><link rel="stylesheet" type="text/css" href="../style/style1.css" /><meta name="DC.Creator" content="Arnold Robbins" /><meta name="DC.Format" content="text/xml" scheme="MIME" /><meta name="DC.Language" content="en-US" /><meta name="DC.Publisher" content="O'Reilly & Associates, Inc." /><meta name="DC.Source" scheme="ISBN" content="1-56592-427-4" /><meta name="DC.Subject.Keyword" content="stuff" /><meta name="DC.Title" content="UNIX in a Nutshell: System V Edition" /><meta name="DC.Type" content="Text.Monograph" /></head><body bgcolor="#ffffff"><img src="gifs/smbanner.gif" usemap="#banner-map" border="0" alt="Book Home" /><map name="banner-map"><area shape="rect" coords="1,-2,616,66" href="index.htm" alt="Book Title" /><area shape="rect" coords="629,-11,726,25" href="jobjects/fsearch.htm" alt="Search this book" /></map><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch11_09.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228" /><td align="right" valign="top" width="228"><a href="part3.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr></table></div><h2 class="sect1">11.10. Alphabetical Summary of Functions and Commands</h2><p><a name="IXT-11-123310" />The following alphabetical list of keywords and functions includes allthat are available in <tt class="literal">awk</tt>, <tt class="literal">nawk</tt>,and <tt class="literal">gawk</tt>. <tt class="literal">nawk</tt> includes all old<tt class="literal">awk</tt> functions and keywords, plus some additionalones (marked as <b class="emphasis-bold">{N}</b>).<tt class="literal">gawk</tt> includes all <tt class="literal">nawk</tt> functions andkeywords, plus some additional ones (marked as <b class="emphasis-bold">{G}</b>).Items marked with <b class="emphasis-bold">{B}</b>are available in the Bell Labs <tt class="literal">awk</tt>.Items that aren't marked with a symbol are available in allversions.</p><table border="1" cellpadding="5"><tr><td valign="top">atan2</td><td><p><tt class="literal">atan2</tt><tt class="literal">(</tt><em class="replaceable"><tt>y</em><tt class="literal">,</tt> <em class="replaceable">x</tt></em><tt class="literal">)</tt></p><p><a name="IXT-11-123311" />Return the arctangent of <em class="emphasis">y</em>/<em class="emphasis">x</em> in radians.{N}</p></td></tr><tr><td valign="top"><a name="break">break</a></td><td><p><tt class="literal">break</tt></p><p><a name="IXT-11-123312" />Exit from a <tt class="literal">while</tt>, <tt class="literal">for</tt>, or<tt class="literal">do</tt> loop.</p></td></tr><tr><td valign="top"><a name="close">close</a></td><td><p><tt class="literal">close(</tt><em class="replaceable"><tt>filename-expr</em><tt class="literal">)</tt><br><tt class="literal">close</tt><tt class="literal">(</tt><em class="replaceable">command-expr</tt></em><tt class="literal">)</tt></p><p><a name="IXT-11-123313" />In most implementations of <tt class="literal">awk</tt>, you can have only 10 files opensimultaneously and one pipe. Therefore, <tt class="literal">nawk</tt> provides a <tt class="literal">close</tt>function that allows you to close a file or a pipe. It takesas an argument the same expression that opened the pipeor file. This expression must be identical, characterby character, to the one that opened the file or pipe; even whitespaceis significant.{N}</p></td></tr><tr><td valign="top"><a name="continue">continue</a></td><td><p><tt class="literal">continue</tt></p><p><a name="IXT-11-123314" />Begin next iteration of <tt class="literal">while</tt>, <tt class="literal">for</tt>,or <tt class="literal">do</tt> loop.</p></td></tr><tr><td valign="top"><a name="cos">cos</a></td><td><p><tt class="literal">cos(</tt><em class="replaceable"><tt>x</tt></em><tt class="literal">)</tt></p><p><a name="IXT-11-123315" />Return the cosine of <em class="emphasis">x</em>, an angle in radians.{N}</p></td></tr><tr><td valign="top"><a name="delete">delete</a></td><td><p><tt class="literal">delete</tt> <em class="replaceable"><tt>array</em><tt class="literal">[</tt><em class="replaceable">element</em><tt class="literal">]</tt><br>tt class="literal">delete</tt> <em class="replaceable">array</tt></em></p><p><a name="IXT-11-123316" />Delete <em class="emphasis">element</em> from <em class="emphasis">array</em>.The brackets are typed literally.The second form is a common extension, which deletes <em class="emphasis">all</em>elements of the array at one shot.{N}</p></td></tr><tr><td valign="top"><a name="do">do</a></td><td><p><tt class="literal">do</tt><br>    <em class="replaceable"><tt>statement</em><br><tt class="literal">while (</tt><em class="replaceable">expr</tt></em><tt class="literal">)</tt></p><p><a name="IXT-11-123317" />Looping statement.Execute <em class="emphasis">statement</em>,then evaluate <em class="emphasis">expr</em> and, if true,execute <em class="emphasis">statement</em> again.A series of statements must be put within braces.{N}</p></td></tr><tr><td valign="top"><a name="exit">exit</a></td><td><p><tt class="literal">exit</tt> [<em class="replaceable"><tt>expr</tt></em>]</p><p><a name="IXT-11-123318" />Exit from script, reading no new input. The <tt class="literal">END</tt> procedure,if it exists, will be executed. An optional <em class="emphasis">expr</em>becomes <tt class="literal">awk</tt>'s return value.</p></td></tr><tr><td valign="top"><a name="exp">exp</a></td><td><p><tt class="literal">exp(</tt><em class="replaceable"><tt>x</tt></em><tt class="literal">)</tt></p><p><a name="IXT-11-123319" />Return exponential of <em class="emphasis">x</em>(<em class="emphasis">e</em><sup class="superscript"><em class="emphasis">x</em></sup>).</p></td></tr><tr><td valign="top"><a name="fflush">fflush</a></td><td><p><tt class="literal">fflush(</tt>[<em class="replaceable"><tt>output-expr</tt></em>]<tt class="literal">)</tt></p><p><a name="IXT-11-123320" />Flush any buffers associated with open output file or pipe<em class="emphasis">output-expr</em>.{B}</p><p><tt class="literal">gawk</tt> extends this function.If no <em class="emphasis">output-expr</em> is supplied,it flushes standard output.If <em class="emphasis">output-expr</em> is the nullstring (<tt class="literal">""</tt>), it flushesall open files and pipes. {G}</p></td></tr><tr><td valign="top"><a name="for">for</a></td><td><p><tt class="literal">for (</tt><em class="replaceable"><tt>init-expr</em><tt class="literal">;</tt> <em class="replaceable">test-expr</em><tt class="literal">;</tt> <em class="replaceable">incr-expr</em><tt class="literal">)</tt><br>    <em class="replaceable">statement</tt></em></p><p><a name="IXT-11-123321" />C-style looping construct. <em class="emphasis">init-expr</em> assigns theinitial value of a counter variable. <em class="emphasis">test-expr</em> isa relational expression that is evaluated each time before executingthe <em class="emphasis">statement</em>. When <em class="emphasis">test-expr</em> isfalse, the loop is exited. <em class="emphasis">incr-expr</em> incrementsthe counter variable after each pass. All the expressions areoptional. A missing <em class="emphasis">test-expr</em> is considered to be true.A series of statements must be put within braces.</p></td></tr><tr><td valign="top"><a name="for">for</a></td><td><p><tt class="literal">for (</tt><em class="replaceable"><tt>item</em> <tt class="literal">in</tt> <em class="replaceable">array</em><tt class="literal">)</tt><br>    <em class="replaceable">statement</tt></em></p><p>Special loop designed for reading associative arrays. For eachelement of the array, the <em class="emphasis">statement</em> isexecuted; the element can be referenced by<em class="emphasis">array</em>[<em class="emphasis">item</em>].A series of statements must be put within braces.</p></td></tr><tr><td valign="top"><a name="function">function</a></td><td><p><tt class="literal">function</tt> <em class="replaceable"><tt>name</em><tt class="literal">(</tt><em class="replaceable">parameter-list</em><tt class="literal">) {</tt><br>    <em class="replaceable">statements</tt></em><br><tt class="literal">}</tt></p><p><a name="IXT-11-123322" />Create <em class="emphasis">name</em> as a user-defined function consisting of <tt class="literal">awk</tt><em class="emphasis">statements</em> that apply to the specified list of parameters.No space is allowed between <em class="emphasis">name</em> and the left parenwhen the function is called.{N}</p></td></tr><tr><td valign="top"><a name="getline">getline</a></td><td><p><tt class="literal">getline</tt> [<em class="replaceable"><tt>var</em>] [<tt class="literal"><</tt> <em class="replaceable">file</em>]<br>    <b class="emphasis-bold">or</b><br><em class="replaceable">command</em><tt class="literal"> | getline </tt>[<em class="replaceable">var</tt></em>]</p><p><a name="IXT-11-123323" />Read next line of input.Original <tt class="literal">awk</tt> doesn't support the syntaxto open multiple input streams.The first form reads input from <em class="emphasis">file</em>; the second form reads the output of <em class="emphasis">command</em>.Both forms read one record at a time, and each timethe statement is executed, it gets the next recordof input. The record is assigned to <tt class="literal">$0</tt>and is parsed into fields, setting <tt class="literal">NF</tt>,<tt class="literal">NR</tt> and <tt class="literal">FNR</tt>.If <em class="emphasis">var</em> is specified, the result is assignedto <em class="emphasis">var</em>, and <tt class="literal">$0</tt> and<tt class="literal">NF</tt> aren't changed. Thus, ifthe result is assigned to a variable, thecurrent record doesn't change.<tt class="literal">getline</tt> is actually a function and returns 1 if itreads a record successfully, 0 if end-of-file isencountered, and -1 if it'sotherwise unsuccessful.{N}</p></td></tr><tr><td valign="top"><a name="gensub">gensub</a></td><td><p><tt class="literal">gensub(</tt><em class="replaceable"><tt>r</em><tt class="literal">,</tt> <em class="replaceable">s</em><tt class="literal">,</tt> <em class="replaceable">h</em> [<tt class="literal">,</tt> <em class="replaceable">t</tt></em>]<tt class="literal">)</tt></p><p><a name="IXT-11-123324" />General substitution function. Substitute <em class="emphasis">s</em> for matchesof the regular expression <em class="emphasis">r</em> in the string<em class="emphasis">t</em>. If <em class="emphasis">h</em> is a number, replacethe <em class="emphasis">h</em>th match. If it is<tt class="literal">"g"</tt> or <tt class="literal">"G"</tt>,substitute globally. If <em class="emphasis">t</em> is not supplied,<tt class="literal">$0</tt> is used. Return the new string value. Theoriginal <em class="emphasis">t</em> is <em class="emphasis">not</em> modified.(Compare <b class="emphasis-bold">gsub</b> and <b class="emphasis-bold">sub</b>.){G}</p></td></tr><tr><td valign="top"><a name="gsub">gsub</a></td><td><p><tt class="literal">gsub(</tt><em class="replaceable"><tt>r</em><tt class="literal">,</tt> <em class="replaceable">s</em> [<tt class="literal">,</tt> <em class="replaceable">t</tt></em>]<tt class="literal">)</tt></p><p><a name="IXT-11-123325" />Globally substitute <em class="emphasis">s</em> for each match of theregular expression <em class="emphasis">r</em> in the string <em class="emphasis">t</em>.If <em class="emphasis">t</em> is not supplied,defaults to <tt class="literal">$0</tt>.Return the number of substitutions.{N}</p></td></tr><tr><td valign="top"><a name="if">if</a></td><td><p><tt class="literal">if (</tt><em class="replaceable"><tt>condition</em><tt class="literal">)</tt><br>    <em class="replaceable">statement</em><br>[<tt class="literal">else</tt><br>    <em class="replaceable">statement</tt></em>]</p><p><a name="IXT-11-123326" />If <em class="emphasis">condition</em> is true, do <em class="emphasis">statement(s)</em>; otherwise do<em class="emphasis">statement</em> in the optional <tt class="literal">else</tt> clause.The <em class="emphasis">condition</em> can be an expression usingany of the relational operators <tt class="literal"><</tt>,<tt class="literal"><=</tt>,<tt class="literal">==</tt>,<tt class="literal">!=</tt>,<tt class="literal">>=</tt>,or<tt class="literal">></tt>,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -