青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

   C++ 技術(shù)中心

   :: 首頁(yè) :: 聯(lián)系 ::  :: 管理
  160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks

公告

鄭重聲明:本BLOG所發(fā)表的原創(chuàng)文章,作者保留一切權(quán)利。必須經(jīng)過(guò)作者本人同意后方可轉(zhuǎn)載,并注名作者(天空)和出處(CppBlog.com)。作者Email:coder@luckcoder.com

留言簿(27)

搜索

  •  

最新隨筆

最新評(píng)論

評(píng)論排行榜

一.awk功能特點(diǎn)
     awk是一個(gè)非常重要的命令或者認(rèn)為是一種語(yǔ)言。因?yàn)樗梢宰鰯?shù)學(xué)運(yùn)算,流程控制語(yǔ)句,流控制,還有樣式裝入的功能。反正是非常強(qiáng)大。awk是三位創(chuàng)建者編寫(xiě)的。把a(bǔ)wk定義為:樣式掃描處理語(yǔ)言。
   awk吸收了C語(yǔ)言很多的特點(diǎn),所以與C語(yǔ)言有點(diǎn)類(lèi)擬。

二.awk的調(diào)用方式
    awk提供了適應(yīng)不同需要的多種方案,它們是:
  1.awk命令行
         像普通的unix命令一樣使用awk,當(dāng)然可以在你的命令行中使用awk設(shè)計(jì)語(yǔ)言。而且還可以在shell腳本中引用awk命令或awk程序腳本。
   2.使用-f選項(xiàng)調(diào)用awk程序。
        awk可以將一段awk程序腳本寫(xiě)入到一個(gè)文本文件,然后使用-f選項(xiàng)來(lái)指定執(zhí)行這個(gè)awk語(yǔ)言腳本。
  3.利用命令解釋器調(diào)用awk程序
        利用unix支持的命令解釋功能。可以將一段awk程序?qū)懭氲轿谋疚募缓笤谒牡谝恍屑由希?/span>
      #!/bin/awk -f
   并chmod u+x權(quán)限。這樣以后,你就可以用以下命令格式來(lái)調(diào)用了。
   $awk 腳本文件名  待處理的文件

三.awk語(yǔ)法
  1.與其他的unix命令一樣,它的語(yǔ)法如下:
    awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...]
   參數(shù)說(shuō)明:
     -F re,指定某字符為分隔符
    parameter:該參數(shù)幫助不同的變量賦值
    'prog': awk的程序語(yǔ)句段。這個(gè)語(yǔ)句段必須用'與'括起來(lái)。以防被shell給解釋掉了。它的標(biāo)準(zhǔn)形式如下:
         'pattern {action}'
    其中pattern參數(shù)可以是grep正則表達(dá)式中的任何一個(gè),
它可以使用語(yǔ)法/re/再加上一些樣式匹配技巧構(gòu)成,也可以使用","分開(kāi)兩樣式以選擇某個(gè)范圍。。 action參數(shù)總是被大括號(hào)包圍,它由一系統(tǒng)awk語(yǔ)句組成,各語(yǔ)句之間用";"分隔。awk解釋它們,并在pattern給定的樣式匹配的記錄上執(zhí)行 其操作。與shell類(lèi)似,你也可以使用“#”作為注釋符,它使“#”到行尾的內(nèi)容成為注釋?zhuān)诮忉寛?zhí)行時(shí),它們將被忽略。你可以省略pattern和 action之一,但不能兩者同時(shí)省略,當(dāng)省略pattern時(shí)沒(méi)有樣式匹配,表示對(duì)所有行(記錄)均執(zhí)行操作,省略action時(shí)執(zhí)行缺省的操作——在 標(biāo)準(zhǔn)輸出上顯示。

-f profile:
允許awk調(diào)用并執(zhí)行progfile指定程序文件。progfile是一個(gè)文本文件,他必須符合awk的語(yǔ)法(注意不是shell文件)。

 
in_file :awk的輸入文件,可以有多個(gè)。注意:awk不會(huì)修改輸入文件。如果沒(méi)有指定輸入文件,那么默認(rèn)為標(biāo)準(zhǔn)輸入(屏幕)

四. awk的記錄,字段與內(nèi)置變量
 1. 記錄與字段
在 awk中,缺省的情況下總是將文本文件中的一行視為一個(gè)記錄,而將一行中的某一部分作為記錄中的一個(gè)字段。為了操作這些不同的字段,awk借用shell 的方法,用$1,$2,$3...這樣的方式來(lái)順序地表示行(記錄)中的不同字段。特殊地,awk用$0表示整個(gè)行(記錄)。不同的字段之間是用稱作分隔 符的字符分隔開(kāi)的。系統(tǒng)默認(rèn)的分隔符是空格。awk允許在命令行中用-F re的形式來(lái)改變這個(gè)分隔符。事實(shí)上,awk用一個(gè)內(nèi)置的變量FS來(lái)記憶這個(gè)分隔符

  2. 內(nèi)置變量
  
awk中有好幾個(gè)這樣的內(nèi)置變量,例如,記錄分隔符變量RS、當(dāng)前工作的記錄數(shù)NR等等。

  示例:顯示文件本文件testAwk中第3行到第6行,以字符%分隔的第一個(gè)字段,第三個(gè)字段:
 awk -F % 'NR==3,NR==6 {printf $1  $3}' testAwk
  
  示例:殺死系統(tǒng)中所有top進(jìn)程
    ps -ef|grep " top" |grep -v "grep"|awk '{printf $2}'|xargs kill -9
    或
    kill -9 `ps -ef|grep " top" |grep -v "grep"|awk '{printf $2}'`

五. awk的內(nèi)置函數(shù)
  1.  以上示例了printf函數(shù),它與C語(yǔ)言相似,如下,顯示testAwk文件中行號(hào)與第1個(gè)字段:
  $awk '{printf"%03d%s\n",NR,$1}' testAwk
  2.
顯示文本文件mydoc匹配(含有)字符串"sun"的所有行
  
$awk '/sun/{print}' mydoc
  3.
由于顯示整個(gè)記錄(全行)是awk的缺省動(dòng)作,因此可以省略action項(xiàng)
  
$awk '/sun/' mydoc

  4.
示第一個(gè)匹配Sun或sun的行與第一個(gè)匹配Moon或moon的行之間的行,并顯示到標(biāo)準(zhǔn)輸出上
   
$awk '/[Ss]un/,/[Mm]oon/ {print}' myfile

  5.
下面的示例顯示了內(nèi)置變量和內(nèi)置函數(shù)length()的使用:
  
$awk 'length($0)>80 {print NR}' myfile

  6.
UNIX中的用戶進(jìn)行安全性檢查,方法是考察/etc下的passwd文件,檢查其中的passwd字段(第二字段)是否為"*",如不為"*",則表示該用戶沒(méi)有設(shè)置密碼,顯示出這些用戶名(第一字段)。我們可以用如下語(yǔ)句實(shí)現(xiàn):
  
#awk -F: '$2=="" {printf("%s no password!\n",$1' /etc/passwd
  
在這個(gè)示例中,passwd文件的字段分隔符是“:”,因此,必須用-F:來(lái)更改默認(rèn)的字段分隔符,這個(gè)示例中也涉及到了內(nèi)置函數(shù)printf的使用
 
 六.
awk的變量
  
awk提供兩種變量:
   (1) 內(nèi)置變量
  在引用時(shí),不需要加$
   (2)
自定義變量
      
awk中引用自定義變量必須在它前面加上標(biāo)志符"$"。awk根據(jù)其在awk中第一次出現(xiàn)的形式和上下文確定其具體的數(shù)據(jù)類(lèi)型。當(dāng)變量類(lèi)型不確定時(shí),awk默認(rèn)其為字符串類(lèi)型。這里有一個(gè)技巧:如果你要讓你的awk程序知道你所使用的變量的明確類(lèi)型,你應(yīng)當(dāng)在在程序中給它賦初值。
 
七.
運(yùn)算與判斷
   
awk 支持多種運(yùn)算,這些運(yùn)算與C語(yǔ)言提供的幾本相同:如+、-、*、/、%等等,同時(shí),awk也支持C語(yǔ)言中類(lèi)似++、--、+=、-=、=+、=-之類(lèi)的功 能,這給熟悉C語(yǔ)言的使用者編寫(xiě)awk程序帶來(lái)了極大的方便。作為對(duì)運(yùn)算功能的一種擴(kuò)展,awk還提供了一系列內(nèi)置的運(yùn)算函數(shù)(如log、sqr、 cos、sin等等)和一些用于對(duì)字符串進(jìn)行操作(運(yùn)算)的函數(shù)(如length、substr等等)。這些函數(shù)的引用大大的提高了awk的運(yùn)算功能。

作 為對(duì)條件轉(zhuǎn)移指令的一部分,關(guān)系判斷是每種程序設(shè)計(jì)語(yǔ)言都具備的功能,awk也不例外。awk中允許進(jìn)行多種測(cè)試,如常用的==(等于)、!=(不等 于)、>(大于)、<(小于)、>=(大于等于)、>=(小于等于)等等,同時(shí),作為樣式匹配,還提供了~(匹配于)和!~(不 匹配于)判斷。

作為對(duì)測(cè)試的一種擴(kuò)充,awk也支持用邏輯運(yùn)算符:!(非)、&&(與)、||(或)和括號(hào)()進(jìn)行多重判斷,這大大增強(qiáng)了awk的功能。本文的附錄中列出了awk所允許的運(yùn)算、判斷以及操作符的優(yōu)先級(jí)。

 八.
awk的流程控制
  1.
BEGIN和END:
    
任何在BEGIN之后列出的操作(在{}內(nèi))將在awk開(kāi)始掃描輸入之前執(zhí)行,而END之后列出的操作將在掃描完全部的輸入之后執(zhí)行。因此,通常使用BEGIN來(lái)顯示變量和預(yù)置(初始化)變量,使用END來(lái)輸出最終結(jié)果。
  
例:累計(jì)銷(xiāo)售文件xs中的銷(xiāo)售金額(假設(shè)銷(xiāo)售金額在記錄的第三字段):

$awk
>'BEGIN { FS=":";print "統(tǒng)計(jì)銷(xiāo)售金額";total=0}
>{print $3;total=total+$3;}
>END {printf "銷(xiāo)售金額總計(jì):%.2f",total}' sx
(注:>是shell提供的第二提示符,如要在shell程序awk語(yǔ)句和awk語(yǔ)言中換行,則需在行尾加反斜杠\)

在這里,BEGIN預(yù)置了內(nèi)部變量FS(字段分隔符)和自定義變量total,同時(shí)在掃描之前顯示出輸出行頭。而END則在掃描完成后打印出總合計(jì)。


  2.
流程控制語(yǔ)句
  (1) if .. else
 
if...else語(yǔ)句
   
格式:
if(表達(dá)式)
語(yǔ)句1
else
語(yǔ)句2
 
  
if(表達(dá)式1)
{if(表達(dá)式2)
語(yǔ)句1
else
語(yǔ)句2
}
語(yǔ)句3
else {if(表達(dá)式3)
語(yǔ)句4
else
語(yǔ)句5
}
語(yǔ)句6
  (2)
while語(yǔ)句
   
格式為:

while(表達(dá)式)
語(yǔ)句
  (3)do-while語(yǔ)句
格式為:
do
{
語(yǔ)句
}while(條件判斷語(yǔ)句)


   (4)
for語(yǔ)句
   
for(初始表達(dá)式;終止條件;步長(zhǎng)表達(dá)式)
{語(yǔ)句}

在 awk的 while、do-while和for語(yǔ)句中允許使用break,continue語(yǔ)句來(lái)控制流程走向,也允許使用exit這樣的語(yǔ)句來(lái)退出。break 中斷當(dāng)前正在執(zhí)行的循環(huán)并跳到循環(huán)外執(zhí)行下一條語(yǔ)句。continue從當(dāng)前位置跳到循環(huán)開(kāi)始處執(zhí)行。對(duì)于exit的執(zhí)行有兩種情況:當(dāng)exit語(yǔ)句不在 END中時(shí),任何操作中的exit命令表現(xiàn)得如同到了文件尾,所有模式或操作執(zhí)行將停止,END模式中的操作被執(zhí)行。而出現(xiàn)在END中的exit將導(dǎo)致程序終止。


九.awk中的自定義函數(shù)
 
原始的awk并不提供函數(shù)功能,只有在nawk或較新的awk版本中才可以增加函數(shù)
awk函數(shù)的定義方法如下:

function 函數(shù)名(參數(shù)表){
函數(shù)體
}
在gawk中允許將function省略為func,但其它版本的awk不允許。在 awk中調(diào)用函數(shù)比較簡(jiǎn)單,其方法與C語(yǔ)言相似,但awk比C語(yǔ)言更為靈活,它不執(zhí)行參數(shù)有效性檢查。換句話說(shuō),在你調(diào)用函數(shù)時(shí),可以列出比函數(shù)預(yù)計(jì)(函 數(shù)定義中規(guī)定)的多或少的參數(shù),多余的參數(shù)會(huì)被awk所忽略,而不足的參數(shù),awk將它們置為缺省值0或空字符串,具體置為何值,將取決于參數(shù)的使用方 式。在函數(shù)中使用形如:return 返回值 格式的語(yǔ)句。
例: 下面的例子演示了函數(shù)的使用。在這個(gè)示例中,定義了一個(gè)名為print_header的函數(shù),該函數(shù)調(diào)用了兩個(gè)參數(shù)FileName和 PageNum,F(xiàn)ileName參數(shù)傳給函數(shù)當(dāng)前使用的文件名,PageNum參數(shù)是當(dāng)前頁(yè)的頁(yè)號(hào)。這個(gè)函數(shù)的功能是打印(顯示)出當(dāng)前文件的文件名, 和當(dāng)前頁(yè)的頁(yè)號(hào)。完成這個(gè)功能后,這個(gè)函數(shù)將返回下一頁(yè)的頁(yè)號(hào)。
nawk
>'BEGIN{pageno=1;file=FILENAME
>pageno=print_header(file,pageno);#調(diào)用函數(shù)print_header
>printf("當(dāng)前頁(yè)頁(yè)號(hào)是:%d\n",pageno);
>}
>#定義函數(shù)print_header
>function print_header(FileName,PageNum){
>printf("%s %d\n",FileName,PageNum); >PageNum++;return PageNUm;
>}
>}' myfile
執(zhí)行這個(gè)程序?qū)@示如下內(nèi)容:
myfile 1
當(dāng)前頁(yè)頁(yè)號(hào)是:2


 十.awk高級(jí)輸入輸出
1.讀取下一條記錄:
awk的next語(yǔ)句導(dǎo)致awk讀取下一個(gè)記錄并完成模式匹配,然后立即執(zhí)行相應(yīng)的操作。通常它用匹配的模式執(zhí)行操作中的代碼。next導(dǎo)致這個(gè)記錄的任何額外匹配模式被忽略。

2.簡(jiǎn)單地讀取一條記錄
awk 的 getline語(yǔ)句用于簡(jiǎn)單地讀取一條記錄。如果用戶有一個(gè)數(shù)據(jù)記錄類(lèi)似兩個(gè)物理記錄,那么getline將尤其有用。它完成一般字段的分離(設(shè)置字段變 量$0 FNR NF NR)。如果成功則返回1,失敗則返回0(到達(dá)文件尾)。如果需簡(jiǎn)單地讀取一個(gè)文件,則可以編寫(xiě)以下代碼:
例:示例getline的使用
{while(getline==1)
{
#process the inputted fields
}
}
也可以使getline保存輸入數(shù)據(jù)在一個(gè)字段中,而不是通過(guò)使用getline variable的形式處理一般字段。當(dāng)使用這種方式時(shí),NF被置成0,F(xiàn)NR和NR被增值。
用 戶也可以使用getline<"filename"方式從一個(gè)給定的文件中輸入數(shù)據(jù),而不是從命令行所列內(nèi)容輸入數(shù)據(jù)。此時(shí),getline將完成 一般字段分離(設(shè)置字段變量$0和NF)。如果文件不存在,返回-1,成功,返回1,返回0表示失敗。用戶可以從給定文件中讀取數(shù)據(jù)到一個(gè)變量中,也可以 用stdin(標(biāo)準(zhǔn)輸入設(shè)備)或一個(gè)包含這個(gè)文件名的變量代替filename。值得注意的是當(dāng)使用這種方式時(shí)不修改FNR和NR。

另一種使用getline語(yǔ)句的方法是從UNIX命令接受輸入,例如下面的例子:
例:示例從UNIX命令接受輸入
{while("who -u"|getline)
{
#process each line from the who command
}
}

當(dāng)然,也可以使用如下形式:
"command" | getline variable

3.關(guān)閉文件:
awk中允許在程序中關(guān)閉一個(gè)輸入或輸出文件,方法是使用awk的close語(yǔ)句。
close("filename")
filename可以是getline打開(kāi)的文件(也可以是stdin,包含文件名的變量或者getline使用的確切命令)。或一個(gè)輸出文件(可以是stdout,包含文件名的變量或使用管道的確切命令)。

4.輸出到一個(gè)文件:
awk中允許用如下方式將結(jié)果輸出到一個(gè)文件:
printf("hello word!\n")>"datafile"

printf("hello word!\n")>>"datafile"

5.輸出到一個(gè)命令
awk中允許用如下方式將結(jié)果輸出到一個(gè)命令:
printf("hello word!\n")|"sort-t','"


十一.
awk與shell script混合編程
因 為awk可以作為一個(gè)shell命令使用,因此awk能與shell批處理程序很好的融合在一起,這給實(shí)現(xiàn)awk與shell程序的混合編程提供了可能。 實(shí)現(xiàn)混合編程的關(guān)鍵是awk與shell script之間的對(duì)話,換言之,就是awk與shell script之間的信息交流:awk從shell script中獲取所需的信息(通常是變量的值)、在awk中執(zhí)行shell命令行、shell script將命令執(zhí)行的結(jié)果送給awk處理以及shell script讀取awk的執(zhí)行結(jié)果等等。

1.awk讀取Shell script程序變量
在awk中我們可以通過(guò)“'$變量名'”的方式讀取sell scrpit程序中的變量。
例:在下面的示例中,我們將讀取sell scrpit程序中的變量Name,該變量存放的是文本myfile的撰寫(xiě)者,awk將打印出這個(gè)人名。
$cat writename
:
# @(#)
#
.
.
.
Name="張三" nawk 'BEGIN {name="'Name'";\ printf("\t%s\t撰寫(xiě)者%s\n",FILENAME,name");}\
{...}END{...}' myfile
.
.
.

2.將shell命令的執(zhí)行結(jié)果送給awk處理
作為信息傳送的一種方法,我們可以將一條shell命令的結(jié)果通過(guò)管道線(|)傳遞給awk處理:
例:示例awk處理shell命令的執(zhí)行結(jié)果
$who -u | awk '{printf("%s正在執(zhí)行%s\n",$2,$1)}'
該命令將打印出注冊(cè)終端正在執(zhí)行的程序名。

3.shell script程序讀awk的執(zhí)行結(jié)果
為 了實(shí)現(xiàn)shell script程序讀取awk執(zhí)行的結(jié)果,我們可以采取一些特殊的方法,例如我們可以用變量名=`awk語(yǔ)句`的形式將awk執(zhí)行的結(jié)果存放入一個(gè) shell script變量。當(dāng)然也可以用管道線的方法將awk執(zhí)行結(jié)果傳遞給shell script程序處理。
例:作為傳送消息 的機(jī)制之一,UNIX提供了一個(gè)向其所有用戶傳送消息的命令wall(意思是write to all寫(xiě)給所有用戶),該命令允許向所有工作中的用戶(終端)發(fā)送消息。為此,我們可以通過(guò)一段shell批處理程序wall.shell來(lái)模擬這一程序 (事實(shí)上比較老的版本中wall就是一段shell批處理程序:

$cat wall.shell
:
# @(#) wall.shell:發(fā)送消息給每個(gè)已注冊(cè)終端
#
cat >/tmp/$$
#用戶錄入消息文本 who -u | awk '{print $2}' | while read tty
do
cat /tmp/$$>$tty
done
在 這個(gè)程序里,awk接受who -u命令的執(zhí)行結(jié)果,該命令打印出所有已注冊(cè)終端的信息,其中第二個(gè)字段是已注冊(cè)終端的設(shè)備名,因此用awk命令析出該設(shè)備名,然后用while read tty語(yǔ)句循環(huán)讀出這些文件名到變量(shell script變量)tty中,作為信息傳送的終結(jié)地址。

4.在awk中執(zhí)行shell命令行----嵌入函數(shù)system()
system()是一個(gè)不適合字符或數(shù)字類(lèi)型的嵌入函數(shù),該函數(shù)的功能是處理作為參數(shù)傳遞給它的字符串。system對(duì)這個(gè)參數(shù)的處理就是將其作為命令處理,也就是說(shuō)將其當(dāng)作命令行一樣加以執(zhí)行。這使得用戶在自己的awk程序需要時(shí)可以靈活地執(zhí)行命令或腳本。
例:下面的程序?qū)⑹褂胹ystem嵌入函數(shù)打印用戶編制好的報(bào)表文件,這個(gè)文件存放在名為myreport.txt的文件中。為簡(jiǎn)約起見(jiàn),我們只列出了其END部分:
.
.
.
END {close("myreport.txt");system("lp myreport.txt");}
在這個(gè)示例中,我們首先使用close語(yǔ)句關(guān)閉了文件myreport.txt文件,然后使用system嵌入函數(shù)將myreport.txt送入打印機(jī)打印。


十二
附錄:

1.awk的常規(guī)表達(dá)式元字符
\ 換碼序列
^ 在字符串的開(kāi)頭開(kāi)始匹配
$ 在字符串的結(jié)尾開(kāi)始匹配
. 與任何單個(gè)字符串匹配
[ABC] 與[]內(nèi)的任一字符匹配
[A-Ca-c] 與A-C及a-c范圍內(nèi)的字符匹配(按字母表順序)
[^ABC] 與除[]內(nèi)的所有字符以外的任一字符匹配
Desk|Chair 與Desk和Chair中的任一個(gè)匹配
[ABC][DEF] 關(guān)聯(lián)。與A、B、C中的任一字符匹配,且其后要跟D、E、F中的任一個(gè)字符。
* 與A、B或C中任一個(gè)出現(xiàn)0次或多次的字符相匹配
+ 與A、B或C中任何一個(gè)出現(xiàn)1次或多次的字符相匹配
? 與一個(gè)空串或A、B或C在任何一個(gè)字符相匹配
(Blue|Black)berry 合并常規(guī)表達(dá)式,與Blueberry或Blackberry相匹配

2.awk算術(shù)運(yùn)算符
運(yùn)算符 用途
------------------
x^y x的y次冪
x**y 同上
x%y 計(jì)算x/y的余數(shù)(求模)
x+y x加y
x-y x減y
x*y x乘y
x/y x除y
-y 負(fù)y(y的開(kāi)關(guān)符號(hào));也稱一目減
++y y加1后使用y(前置加)
y++ 使用y值后加1(后綴加)
--y y減1后使用y(前置減)
y-- 使用后y減1(后綴減)
x=y 將y的值賦給x
x+=y 將x+y的值賦給x
x-=y 將x-y的值賦給x
x*=y 將x*y的值賦給x
x/=y 將x/y的值賦給x x%=y 將x%y的值賦給x
x^=y 將x^y的值賦給x
x**=y 將x**y的值賦給x

3.awk允許的測(cè)試:
操作符 含義
x==y x等于y
x!=y x不等于y
x>y x大于y
x>=y x大于或等于y
x<y x小于y
x<=y x小于或等于y?
x~re x匹配正則表達(dá)式re?
x!~re x不匹配正則表達(dá)式re?

4.awk的操作符(按優(yōu)先級(jí)升序排列)
= 、+=、 -=、 *= 、/= 、 %=
||
&&
> >= < <= == != ~ !~
xy (字符串連結(jié),'x''y'變成"xy")
+ -
* / %
++ --

5.awk內(nèi)置變量(預(yù)定義變量)
說(shuō)明:表中v項(xiàng)表示第一個(gè)支持變量的工具(下同):A=awk,N=nawk,P=POSIX awk,G=gawk
V 變量 含義 缺省值
--------------------------------------------------------
N ARGC 命令行參數(shù)個(gè)數(shù)
G ARGIND 當(dāng)前被處理文件的ARGV標(biāo)志符
N ARGV 命令行參數(shù)數(shù)組
G CONVFMT 數(shù)字轉(zhuǎn)換格式 %.6g
P ENVIRON UNIX環(huán)境變量
N ERRNO UNIX系統(tǒng)錯(cuò)誤消息
G FIELDWIDTHS 輸入字段寬度的空白分隔字符串
A FILENAME 當(dāng)前輸入文件的名字
P FNR 當(dāng)前記錄數(shù)
A FS 輸入字段分隔符 空格
G IGNORECASE 控制大小寫(xiě)敏感0(大小寫(xiě)敏感)
A NF 當(dāng)前記錄中的字段個(gè)數(shù)
A NR 已經(jīng)讀出的記錄數(shù)
A OFMT 數(shù)字的輸出格式 %.6g
A OFS 輸出字段分隔符 空格
A ORS 輸出的記錄分隔符 新行
A RS 輸入的記錄他隔符 新行
N RSTART 被匹配函數(shù)匹配的字符串首
N RLENGTH 被匹配函數(shù)匹配的字符串長(zhǎng)度
N SUBSEP 下標(biāo)分隔符 "\034"

6.awk的內(nèi)置函數(shù)
V 函數(shù) 用途或返回值
------------------------------------------------
N gsub(reg,string,target) 每次常規(guī)表達(dá)式reg匹配時(shí)替換target中的string
N index(search,string) 返回string中search串的位置
A length(string) 求串string中的字符個(gè)數(shù)
N match(string,reg) 返回常規(guī)表達(dá)式reg匹配的string中的位置
N printf(format,variable) 格式化輸出,按format提供的格式輸出變量variable。
N split(string,store,delim) 根據(jù)分界符delim,分解string為store的數(shù)組元素
N sprintf(format,variable) 返回一個(gè)包含基于format的格式化數(shù)據(jù),variables是要放到串中的數(shù)據(jù)
G strftime(format,timestamp) 返回一個(gè)基于format的日期或者時(shí)間串,timestmp是systime()函數(shù)返回的時(shí)間
N sub(reg,string,target) 第一次當(dāng)常規(guī)表達(dá)式reg匹配,替換target串中的字符串
A substr(string,position,len) 返回一個(gè)以position開(kāi)始len個(gè)字符的子串
P totower(string) 返回string中對(duì)應(yīng)的小寫(xiě)字符
P toupper(string) 返回string中對(duì)應(yīng)的大寫(xiě)字符
A atan(x,y) x的余切(弧度)
N cos(x) x的余弦(弧度)
A exp(x) e的x冪
A int(x) x的整數(shù)部分
A log(x) x的自然對(duì)數(shù)值
N rand() 0-1之間的隨機(jī)數(shù)
N sin(x) x的正弦(弧度)
A sqrt(x) x的平方根
A srand(x) 初始化隨機(jī)數(shù)發(fā)生器。如果忽略x,則使用system()
G system() 返回自1970年1月1日以來(lái)經(jīng)過(guò)的時(shí)間(按秒計(jì)算)
posted on 2011-04-24 12:18 C++技術(shù)中心 閱讀(28826) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Linux 操作
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美尤物巨大精品爽| 欧美福利一区二区三区| 久久久久久久综合| 国产一区二区三区的电影| 欧美在线91| 欧美成人综合在线| 日韩视频一区二区在线观看| 欧美四级电影网站| 午夜综合激情| 欧美黄色免费| 亚洲欧美精品伊人久久| 国产有码一区二区| 欧美xxx在线观看| 亚洲一区二区黄| 欧美不卡视频| 亚洲小说春色综合另类电影| 国产亚洲欧美一区二区| 欧美国产乱视频| 亚洲在线免费观看| 欧美丰满高潮xxxx喷水动漫| 亚洲欧美bt| 亚洲第一精品福利| 国产精品视频1区| 欧美成人综合网站| 亚洲欧美日韩一区二区在线| 亚洲国产日韩在线| 欧美一区不卡| 一区二区三区四区国产精品| 国模私拍一区二区三区| 欧美日韩国产精品成人| 久久精品成人| 亚洲一区二区三区乱码aⅴ| 欧美成人国产va精品日本一级| 一区二区三区视频观看| 原创国产精品91| 国产精品对白刺激久久久| 久久久久久久激情视频| 亚洲欧美成人综合| 日韩视频一区二区三区在线播放| 久久欧美肥婆一二区| 亚洲在线观看免费| 亚洲美女中出| 亚洲黄色av| 韩国三级电影一区二区| 国产精品丝袜白浆摸在线| 欧美精品久久99| 久久亚洲国产精品日日av夜夜| 亚洲综合精品| 亚洲视频精品| 999在线观看精品免费不卡网站| 欧美aa国产视频| 久久影院午夜论| 欧美中文在线视频| 性久久久久久久久久久久| 中文一区二区| 日韩视频一区二区三区在线播放| 伊人一区二区三区久久精品| 国产亚洲欧美日韩美女| 国产网站欧美日韩免费精品在线观看| 欧美日韩美女| 欧美日韩一区不卡| 欧美日韩国产成人在线| 欧美激情国产精品| 欧美精品18+| 欧美另类videos死尸| 亚洲在线第一页| 亚洲激情精品| 亚洲国产精品一区二区www在线 | 亚洲欧洲日本国产| 欧美成人午夜激情在线| 你懂的视频欧美| 卡通动漫国产精品| 免费亚洲电影在线| 欧美成人精品影院| 亚洲成色精品| 亚洲精品婷婷| 一本色道久久88精品综合| 一片黄亚洲嫩模| 亚洲自拍偷拍麻豆| 性欧美在线看片a免费观看| 亚洲欧美日韩久久精品| 欧美视频观看一区| 久久久青草婷婷精品综合日韩| 国产欧美视频一区二区三区| 亚洲午夜精品久久久久久app| 尤物99国产成人精品视频| 久久成人这里只有精品| 久久精品免费观看| 亚洲高清资源| 欧美日韩国产精品一卡| 中国av一区| 久久夜色精品国产噜噜av| 最近看过的日韩成人| 欧美午夜激情小视频| 久久精品30| 亚洲欧洲综合另类在线| 亚洲国产一区二区在线| 99ri日韩精品视频| 久久国产精品色婷婷| 久久夜色精品国产| 午夜精品在线| 久久综合色一综合色88| 欧美理论电影在线播放| 国产精品五月天| 亚洲国产精品成人va在线观看| 99伊人成综合| 久久av一区二区三区| 欧美国产日韩xxxxx| aa级大片欧美三级| 午夜一区二区三区在线观看 | 久久精品亚洲国产奇米99| 欧美v国产在线一区二区三区| 欧美日韩精品免费| 国内激情久久| 亚洲午夜免费视频| 蜜桃av一区| 亚洲一区久久久| 欧美不卡一卡二卡免费版| 国产精品一区二区a| 最近看过的日韩成人| 欧美在线免费视屏| 亚洲精品一区二区三区婷婷月| 欧美一区二区三区男人的天堂| 欧美 日韩 国产一区二区在线视频 | 在线观看日韩专区| 亚洲综合欧美| 亚洲国产一区二区三区青草影视 | 午夜精品国产更新| 91久久夜色精品国产九色| 欧美一区亚洲一区| 国产精品久久久久久久久免费| 亚洲国产欧洲综合997久久| 欧美在线日韩在线| 一区二区三区久久网| 欧美国产专区| 亚洲国产精品第一区二区| 久久久精彩视频| 亚洲午夜一区二区三区| 欧美日韩国产色站一区二区三区| 一区二区三区自拍| 久久久www成人免费精品| 亚洲在线观看视频网站| 欧美日韩一区二区国产| 亚洲精品一二| 亚洲第一在线综合网站| 老牛国产精品一区的观看方式| 国产午夜一区二区三区| 性欧美大战久久久久久久久| 在线视频一区观看| 欧美午夜视频在线| 制服丝袜亚洲播放| 亚洲免费黄色| 欧美日韩在线一区二区| 亚洲视频欧洲视频| 亚洲看片网站| 欧美日韩专区| 亚洲尤物在线视频观看| 在线中文字幕日韩| 欧美视频在线观看免费网址| 亚洲视频一二三| 正在播放亚洲一区| 国产精品久久久久久久久久三级| 亚洲欧美成aⅴ人在线观看| 中文久久精品| 国产精品视频一二三| 午夜在线视频一区二区区别 | 久久精品一级爱片| 伊人婷婷欧美激情| 欧美国产成人在线| 免费久久99精品国产自在现线| 亚洲缚视频在线观看| 亚洲高清视频在线观看| 欧美激情第六页| 亚洲视频免费| 亚洲欧美在线视频观看| 国产主播精品在线| 老巨人导航500精品| 欧美v日韩v国产v| 亚洲午夜精品一区二区三区他趣| 国产精品99久久久久久久久| 国产精品视区| 美日韩精品视频免费看| 欧美成人精品一区二区| 亚洲视屏在线播放| 午夜亚洲性色福利视频| 1204国产成人精品视频| 亚洲日本一区二区| 国产精品久久久久秋霞鲁丝| 久久国产一区二区三区| 久久一区二区三区av| 一二三四社区欧美黄| 亚洲欧美中文日韩在线| 亚洲国产美女精品久久久久∴| 亚洲精品小视频| 国产一区二区成人久久免费影院| 欧美大胆人体视频| 欧美视频中文在线看| 巨乳诱惑日韩免费av| 欧美日韩国产精品专区| 久久久精品一区|