亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教關(guān)于AWK OFS的問題 [打印本頁]

作者: donggua0713    時間: 2011-04-21 17:34
標(biāo)題: 請教關(guān)于AWK OFS的問題
本帖最后由 donggua0713 于 2011-04-21 17:49 編輯

大家好,請大家?guī)兔纯次业膯栴}:

這個語句,注意有$1=""
awk -v sn=$sn 'BEGIN { FS=",";OFS="@" } { $1=""; if ($2 ~ /^T/) print sn$0 }' $1
返回結(jié)果如下:
108985C@T0001@21.1@53.9@11.7@13.2
108985C@T0002@0.2@0.2@1.2@98.4

這個語句,沒有$1=""
awk -v sn=$sn 'BEGIN { FS=",";OFS="@" } { if ($2 ~ /^T/) print sn$0 }' $1
108985CCPU01,T0001,21.1,53.9,11.7,13.2
108985CCPU01,T0002,0.2,0.2,1.2,98.4


這是為什么呢?為什么非要在if前面多執(zhí)行一個語句,OFS才生效呢?但是我需要不下面那個語句的結(jié)果啊。


$1源文件 的片段如下:

CPU01,CPU 1 aix2,User%,Sys%,Wait%,Idle%
CPU01,T0001,21.1,53.9,11.7,13.2
CPU01,T0002,0.2,0.2,1.2,98.4
CPU01,T0003,0.2,0.0,0.8,99.0
CPU01,T0004,0.0,0.2,0.4,99.4
CPU01,T0005,0.0,0.2,0.2,99.6
CPU01,T0006,0.4,0.0,0.8,98.8
CPU01,T0007,0.0,0.2,2.0,97.8
CPU01,T0008,0.0,0.0,0.2,99.8
CPU01,T0009,0.4,0.2,0.6,98.8
CPU01,T0010,0.2,0.2,0.8,98.8
CPU01,T0011,0.0,0.2,0.4,99.4
CPU01,T0012,0.0,0.6,0.4,99.0
CPU01,T0013,0.2,0.2,0.8,98.8
CPU01,T0014,0.2,0.6,0.4,98.8
CPU01,T0015,0.4,0.2,0.6,98.8






原來是這樣,OFS需要把$0給處理一下之后,才會有改動,如果$0沒有處理過,則OFS是不起作用的,所以可以這樣:
awk -v sn=$sn 'BEGIN { FS=",";OFS="@" } { $1=$1;if ($2 ~ /^T/) print sn$0 }' splitfile/aix2.CPU01


但是為什么awk需要這么做呢?
作者: ywlscpl    時間: 2011-04-21 17:49
對$1進(jìn)行賦值后,awk認(rèn)為$0發(fā)生變化了,進(jìn)行重排,這樣設(shè)置的OFS就生效了
作者: donggua0713    時間: 2011-04-21 18:00
不是很智能化啊
作者: blackold    時間: 2011-04-21 20:54
是不夠智能化。

最好是看一眼電腦,電腦就可以執(zhí)行命令,之后輸出你期望的結(jié)果。
作者: yinyuemi    時間: 2011-04-21 23:49
本帖最后由 yinyuemi 于 2011-04-22 00:01 編輯

回復(fù) 3# donggua0713


    呵呵,可能你還有對awk多了解些,有人可能會有下面的需求,從第二行之后,開始使用新的分隔符:
  1. $ echo '108985CCPU01,T0001,21.1,53.9,11.7,13.2
  2. 108985CCPU01,T0002,0.2,0.2,1.2,98.4
  3. 108985CCPU01,T0001,21.1,53.9,11.7,13.2
  4. 108985CCPU01,T0002,0.2,0.2,1.2,98.4' |awk 'BEGIN { FS=",";OFS="@" } NR<=2{print $0;next}{$1=$1;if ($2 ~ /^T/) print "##"$0 }'
  5. 108985CCPU01,T0001,21.1,53.9,11.7,13.2
  6. 108985CCPU01,T0002,0.2,0.2,1.2,98.4
  7. ##108985CCPU01@T0001@21.1@53.9@11.7@13.2
  8. ##108985CCPU01@T0002@0.2@0.2@1.2@98.4
復(fù)制代碼

作者: donggua0713    時間: 2011-04-22 09:10
是不夠智能化。

最好是看一眼電腦,電腦就可以執(zhí)行命令,之后輸出你期望的結(jié)果。
blackold 發(fā)表于 2011-04-21 20:54



   
我們的終極目標(biāo)是這樣的啦
作者: ywlscpl    時間: 2011-04-22 09:17
回復(fù) 6# donggua0713


    我相信,N百年后的計算機系統(tǒng)是這樣的,直接讀取腦電波信息
作者: xiaopan3322    時間: 2011-04-22 10:27
回復(fù)  donggua0713


    我相信,N百年后的計算機系統(tǒng)是這樣的,直接讀取腦電波信息
ywlscpl 發(fā)表于 2011-04-22 09:17



   
作者: expert1    時間: 2011-04-22 10:36
回復(fù) 6# donggua0713


    那你就等著失業(yè)了,老板都可以搞這些
作者: ywlscpl    時間: 2011-04-22 10:44
回復(fù) 8# xiaopan3322


別笑啊,我是認(rèn)真的
作者: xiaopan3322    時間: 2011-04-22 10:58
回復(fù) 10# ywlscpl


    其實我也希望自己能等到這一天。。。真的。。。




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2