⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 470.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 2 页
字号:
          <TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1 
        border=0></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff 
        border=0>
         <TR>
          <TD>
            <TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
              
              <TR>
                <TD vAlign=top align=middle width="60%">
                  <TABLE cellSpacing=0 cellPadding=0 width="100%" 
                  background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
                    <TBODY>
                    <TR>
                        <TD vAlign=top width="80%"> 
                          <DIV align=center>
                        <FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
                            </FORM>
                        <TABLE cellSpacing=0 cellPadding=0 width="95%" 
                          border=0><TBODY>
                          <TR>
                            <TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif" 
                          height=30></TD></TR></TBODY></TABLE>
                        <TABLE cellSpacing=0 cellPadding=3 width="95%" 
                        align=center border=0>
                          <TBODY>
                          <TR>
                            <TD>
                              <TABLE cellSpacing=0 cellPadding=3 width="100%" 
                              border=0>
                                <TBODY>
                                <TR>
                                      <TD vAlign=top> 
<p><FONT class=normalfont><B><font color=blue>gawk的使用方法</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br>第一章    前言  <br>
第二章    简介  <br>
第三章    读取输入档案  <br>
第四章    印出  <br>
第五章    Patterns  <br>
第六章    算式(Expression)作为Actions的叙述  <br>
第七章    Actions里面的控制叙述  <br>
第八章    内建函式(Built-in Functions)  <br>
第九章    使用者定义的函式  <br>
第十章    示例  <br>
第十一章   结论  <br>
  <br>
  <br>
  <br>
=======================================  <br>
  <br>
第一章 前言 <br>
awk是一个程式语言,对於资料的处理具有很强的功能。对於文 字档里的资料做 <br>
修改、比对、抽取等的处理,awk 能够以很短的程式 轻易地完成。如果使用 C  <br>
或 Pascal 等语言写程式完成上述的动作, 会不方便且很花费时间,所写的程 <br>
式也会很大。  <br>
awk 能够依照使用者的定义格式来分解输入资料,也可依照使用 者定义的格式 <br>
来印出资料。 awk 名称的由来是由它的原始设计者的姓氏之第一个字母而命 <br>
名 :Alfred V. Aho, Peter J. Weinberger, Brian W. Kernighan。  <br>
awk最初在1977年完成。一个新版本的awk在1985年被发表,它的功能 比旧版本 <br>
增强不少。 gawk 是GNU所做的 awk,gawk 最初在1986年完成,之後不断地 被 <br>
改进、更新。gawk 包含 awk 的所有功能。 往後的 gawk 将以下面的2个输入档 <br>
案来做例子说明。  <br>
档案'BBS-list':  <br>
aardvark 555-5553 1200/300 B  <br>
alpo-net 555-3412 2400/1200/300 A  <br>
barfly 555-7685 1200/300 A  <br>
bites 555-1675 2400/1200/300 A  <br>
camelot 555-0542 300 C  <br>
core 555-2912 1200/300 C  <br>
fooey 555-1234 2400/1200/300 B  <br>
foot 555-6699 1200/300 B  <br>
macfoo 555-6480 1200/300 A  <br>
sdace 555-3430 2400/1200/300 A  <br>
sabafoo 555-2127 1200/300 C  <br>
档案'shipped':  <br>
Jan 13 25 15 115  <br>
Feb 15 32 24 226  <br>
Mar 15 24 34 228  <br>
Apr 31 52 63 420  <br>
May 16 34 29 208 J <br>
un 31 42 75 492  <br>
Jul 24 34 67 436  <br>
Aug 15 34 47 316  <br>
Sep 13 55 37 277  <br>
Oct 29 54 68 525  <br>
Nov 20 87 82 577  <br>
Dec 17 35 61 401  <br>
Jan 21 36 64 620  <br>
Feb 26 58 80 652  <br>
Mar 24 75 70 495  <br>
Apr 21 70 74 514  <br>
<br>
  <br>
  <br>
  <br>
第二章 简介  <br>
<br>
gawk 的主要功能是针对档案的每一行(line)搜寻指定的 patterns  <br>
。当一行里有符合指定的 patterns,gawk 就会在此一行执行被指定  <br>
的 actions。 gawk 依此方式处理输入档案的每一行直到输入档案结  <br>
束。  <br>
<br>
gawk 程式是由很多的 pattern 与 action 所组成,action 写在  <br>
大括号 { } 里面,一个pattern後面就跟著一个action。整个 gawk 程  <br>
式会像下面的样子:  <br>
<br>
pattern {action}  <br>
pattern {action}  <br>
<br>
在 gawk 程式里面的规则,pattern 或 action 能够被省略,但  <br>
是两个不能同时被省略。如果 pattern 被省略,对於输入档里面的  <br>
每一行,action 都会被执行。如果 action 被省略,内定的 action  <br>
则会印出所有符合 pattern 的输入行。  <br>
<br>
<br>
<br>
2.1 如何执行gawk程式  <br>
<br>
基本上,有2个方法可以执行gawk程式。  <br>
<br>
□如果 gawk 程式很短,则 gawk 可以直接写在 command line,如下所示:  <br>
<br>
gawk 'program' input-file1 input-file2 ...  <br>
<br>
其中 program 包括一些 pattern 和 action。  <br>
<br>
□如果 gawk 程式较长,较为方便的做法是将 gawk 程式存在一个档案,  <br>
即 patterns 与 actions 写在档名为 program-file 的档案里面,执行  <br>
gawk 的格式如下所示:  <br>
<br>
gawk -f program-file input-file1 input-file2 ...  <br>
<br>
gawk 程式的档案不止一个时,执行gawk 的格式如下所示:  <br>
<br>
gawk -f program-file1 -f program-file2 ... input-file1  <br>
input-file2 ...  <br>
<br>
<br>
<br>
2.2 一个简单的例子  <br>
<br>
现在我们举一个简单的例子,因为 gawk 程式很短,所以将 gawk 程  <br>
式直接写在 command line。  <br>
<br>
gawk '/foo/ {print $0}' BBS-list  <br>
<br>
实际的 gawk 程式为 /foo/ {print $0}。/foo/ 为 pattern,意思为搜  <br>
寻输入档里的每一行是否含有子字串 'foo',如果含有 'foo' 则执行 action。  <br>
action 为 print $0,是将现在这一行的内容印出。BBS-list 是输入的档案。  <br>
<br>
执行完上述指令後,会印出下面的结果:  <br>
fooey 555-1234 2400/1200/300 B  <br>
foot 555-6699 1200/300 B  <br>
macfoo 555-6480 1200/300 A  <br>
sabafoo 555-2127 1200/300 C  <br>
<br>
<br>
<br>
2.3 一个较复杂的例子  <br>
<br>
gawk '$1 == "Feb" {sum=$2+$3} END {print sum}' shipped  <br>
<br>
现在这个例子会将输入档 'shipped' 的第一个栏位与 "Feb" 做比较  <br>
,如果相等,则其对应的第2栏位与第3栏位的值会被加到变数 sum。  <br>
对於输入档的每一行重复上述的动作,直到输入档的每一行都被处理  <br>
过为止。最後将 sum 的值印出。END {print sum} 的意思为在所有的输  <br>
入读完之後,执行一次 print sum 的动作,也就是把 sum 的值印出。  <br>
<br>
下面是执行的结果:  <br>
84  <br>
<br>
<br>
                                                              <br>
第三章 读取输入档案 <br>
<br>
gawk的输入可以从标准输入或指定的档案里读取。输入的读取单  <br>
位被称为”记录”(records),gawk 在做处理时,是一个记录一个记 (p9 of 46)  <br>
录地处理。每个记录的内定值是一行(line),一个记录又被分为多个  <br>
栏位(fields)。  <br>
<br>
<br>
<br>
3.1 如何将输入分解成记录(records)  <br>
<br>
gawk 语言会把输入分解成记录(record)。记录与记录之间是以  <br>
record separator 隔开,record separator 的内定值是表示新一行的  <br>
字元(newline character),因此内定的 record separator 使得文字  <br>
的每一行是一个记录。  <br>
<br>
record separator 随著内建变数 RS 的改变而改变。RS 是一个字串,  <br>
它的内定值是" "。仅有 RS 的第一个字元是有效的,它被当作 record  <br>
separator,而 RS 的其它字元会被忽略。  <br>
<br>
内建变数 FNR 会储存目前的输入档案已颈欢寥〉募锹贾

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -