📄 ch33_11.htm
字号:
><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">NR</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Number of the current record</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">OFMT</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Output format for numbers (default is <CODECLASS="literal">%.6g</CODE>)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">OFS</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Output field separator (default is a blank)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">ORS</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Output record separator (default is a newline)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">RS</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Record separator (default is a newline)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="literal">$0</CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Entire input record</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="literal">$</CODE><CODECLASS="replaceable"><I>n</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="replaceable"><I>n</I></CODE>th field in current record;fields are separated by <EMCLASS="emphasis">FS</EM></TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">nawk</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">ARGC</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Number of arguments on command line</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">ARGV</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">An array containing the command-line arguments</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">ENVIRON</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">An associative array of environment variables</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">FNR</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Like <EMCLASS="emphasis">NR</EM>, but relative to the current file</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">RSTART</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">First position in the string matched by <EMCLASS="emphasis">match</EM> function</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">RLENGTH</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Length of the string matched by <EMCLASS="emphasis">match</EM> function</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">SUBSEP</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Separator character for array subscripts (default is <CODECLASS="literal">\034</CODE>)</TD></TR></TBODY></TABLE></P></DIV><DIVCLASS="sect2"><H3CLASS="sect2"><ACLASS="title"NAME="UPT-ART-2860-SECT-1.4">33.11.4 Operators </A></H3><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-37411"></A><ACLASS="indexterm"NAME="AUTOID-37414"></A>The table below lists the operators,in order of increasing precedence, that are available in <EMCLASS="emphasis">awk</EM>:<TABLECLASS="informaltable"><THEADCLASS="thead"><TRCLASS="row"VALIGN="TOP"><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Symbol</TH><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Meaning</TH></TR></THEAD><TBODYCLASS="tbody"><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">= += -= *= /= %= ^=</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Assignment (<CODECLASS="literal">^=</CODE> only in <EMCLASS="emphasis">nawk</EM> and <EMCLASS="emphasis">gawk</EM>)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">?:</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">C conditional expression (<EMCLASS="emphasis">nawk</EM> and <EMCLASS="emphasis">gawk</EM>)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">||</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Logical OR</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">&&</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Logical AND</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">~ !~</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Match regular expression and negation</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">< <= > >= != ==</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Relational operators</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">(blank)</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Concatenation</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">+ -</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Addition, subtraction</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">* / %</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Multiplication, division, and modulus</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">+ - !</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Unary plus and minus, and logical negation</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">^</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Exponentiation (<EMCLASS="emphasis">nawk</EM> and <EMCLASS="emphasis">gawk</EM>)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">++ -- </TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Increment and decrement, either prefix or postfix</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">$</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Field reference</TD></TR></TBODY></TABLE></P></DIV><DIVCLASS="sect2"><H3CLASS="sect2"><ACLASS="title"NAME="UPT-ART-2860-SECT-1.5">33.11.5 Variables and Array Assignments </A></H3><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-37474"></A><ACLASS="indexterm"NAME="AUTOID-37477"></A><ACLASS="indexterm"NAME="AUTOID-37480"></A>Variables can be assigned a value with an equal sign (<CODECLASS="literal">=</CODE>). For example:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">FS = ","</PRE></BLOCKQUOTE></P><PCLASS="para">Expressions using the operators <CODECLASS="literal">+</CODE>, <CODECLASS="literal">-</CODE>, <CODECLASS="literal">*</CODE>,<CODECLASS="literal">/</CODE>, and <CODECLASS="literal">%</CODE> (modulo) can be assigned to variables.</P><PCLASS="para">Arrays can be created with the <EMCLASS="emphasis">split</EM> function (see below), or they can simply be named in an assignment statement.Array elements can be subscripted with numbers (<CODECLASS="replaceable"><I>array</I></CODE><CODECLASS="literal">[1]</CODE>,...<CODECLASS="replaceable"><I>array</I></CODE><CODECLASS="literal">[</CODE><CODECLASS="replaceable"><I>n</I></CODE><CODECLASS="literal">]</CODE>)or with names. For example, to count the number of occurrences of apattern, you could use the following script:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">/<CODECLASS="replaceable"><I>pattern</I></CODE>/ { <CODECLASS="replaceable"><I>array</I></CODE>["<CODECLASS="replaceable"><I>pattern</I></CODE>"]++ }END { print <CODECLASS="replaceable"><I>array</I></CODE>["<CODECLASS="replaceable"><I>pattern</I></CODE>"] }</PRE></BLOCKQUOTE></P></DIV><DIVCLASS="sect2"><H3CLASS="sect2"><ACLASS="title"NAME="UPT-ART-2860-SECT-1.6">33.11.6 Group Listing of awk Commands </A></H3><PCLASS="para"><ACLASS="indexterm"NAME="UPT-ART-2860-IX-COMMANDS-AWK-UTILITY"></A><ACLASS="indexterm"NAME="UPT-ART-2860-IX-AWK-UTILITY-COMMANDS-LIST-OF"></A><EMCLASS="emphasis">awk</EM> commands may be classified as follows:<TABLECLASS="informaltable"><THEADCLASS="thead"><TRCLASS="row"VALIGN="TOP"><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Arithmetic</TH><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">String</TH><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Control Flow</TH><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Input/Output</TH></TR><TRCLASS="row"VALIGN="TOP"><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Functions</TH><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Functions</TH><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Statements</TH><THCLASS="entry"ALIGN="LEFT"ROWSPAN="1"COLSPAN="1">Processing</TH></TR></THEAD><TBODYCLASS="tbody"><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">atan2*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">gsub*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">break</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">close*</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">cos*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">index</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">continue</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">delete*</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">exp</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">length</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">do/while*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">getline*</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">int</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">match*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">exit</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">next</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">log</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">split</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">for</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">print</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">rand*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">sub*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">if</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">printf</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">sin*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">substr</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">return*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">sprintf</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">sqrt</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">tolower*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">while</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">system*</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">srand*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">toupper*</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"></TD></TR></TBODY></TABLE>*Not in original <EMCLASS="emphasis">awk</EM> </P></DIV><DIVCLASS="sect2"><H3CLASS="sect2"><ACLASS="title"NAME="UPT-ART-2860-SECT-1.7">33.11.7 Alphabetical Summary of Commands </A></H3><PCLASS="para">The following alphabetical list of statements and functionsincludes all that are available in <EMCLASS="emphasis">awk</EM>, <EMCLASS="emphasis">nawk</EM>, or <EMCLASS="emphasis">gawk</EM>.Unless otherwise mentioned, the statement or function is foundin all versions. New statements and functions introducedwith <EMCLASS="emphasis">nawk</EM> are also found in <EMCLASS="emphasis">gawk</EM>.</P><DLCLASS="variablelist"><DTCLASS="term"><CODECLASS="literal">atan2</CODE></DT><DDCLASS="listitem"><PCLASS="para"><CODECLASS="literal">atan2(</CODE><CODECLASS="replaceable"><I>y</I></CODE><CODECLASS="literal">,</CODE><CODECLASS="replaceable"><I>x</I></CODE><CODECLASS="literal">)</CODE> <ACLASS="indexterm"NAME="AUTOID-37596"></A>Returns the arctangent of <CODECLASS="replaceable"><I>y</I></CODE>/<CODECLASS="replaceable"><I>x</I></CODE> in radians. (<EMCLASS="emphasis">nawk</EM>) </P></DD><DTCLASS="term"><CODECLASS="literal">break</CODE></DT><DDCLASS="listitem"><PCLASS="para">Exit from a <EMCLASS="emphasis">while</EM>, <EMCLASS="emphasis">for</EM>, or <EMCLASS="emphasis">do</EM> loop.<ACLASS="indexterm"NAME="AUTOID-37609"></A> </P></DD><DTCLASS="term"><CODE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -