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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
樓主: yinyuemi
打印 上一主題 下一主題

[學(xué)習(xí)共享] awk初學(xué)之常見(jiàn)問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
31 [報(bào)告]
發(fā)表于 2011-05-09 18:46 |只看該作者

謝謝TIM,黑哥,yinyuemi.

論壇徽章:
0
32 [報(bào)告]
發(fā)表于 2011-05-13 17:45 |只看該作者
謝謝分享。!好帖子

論壇徽章:
0
33 [報(bào)告]
發(fā)表于 2011-07-11 13:55 |只看該作者
謝謝,有收獲

論壇徽章:
0
34 [報(bào)告]
發(fā)表于 2011-07-13 17:49 |只看該作者
對(duì)初學(xué)者真長(zhǎng)知識(shí)!

論壇徽章:
0
35 [報(bào)告]
發(fā)表于 2011-11-07 09:40 |只看該作者
回復(fù) 1# yinyuemi


    awk '$1==3{printf "|| "$0}{printf " @@ "$0}{print $0}' file

請(qǐng)問(wèn)“||” “@@” 是什么意思啊,沒(méi)怎么看懂這里!

論壇徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年紀(jì)念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役紀(jì)念章
日期:2022-04-24 14:33:24
36 [報(bào)告]
發(fā)表于 2011-11-07 09:59 |只看該作者
本帖最后由 Shell_HAT 于 2015-07-06 11:52 編輯

回復(fù) 35# tt_yy123


就是兩個(gè)普通的字符串,沒(méi)有什么特殊含義,你高興的話可以換成別的。
目的是讓你看清楚到底是哪個(gè){}里面的內(nèi)容在執(zhí)行。




關(guān)于awk的多文件處理:

awk的數(shù)據(jù)輸入有兩個(gè)來(lái)源,標(biāo)準(zhǔn)輸入和文件,后一種方式支持多個(gè)文件,如
1、shell的Pathname Expansion方式:awk '{...}'  *.txt      #  *.txt先被shell解釋,替換成當(dāng)前目錄下的所有*.txt,如當(dāng)前目錄有1.txt和2.txt,則命令最終為awk '{...}' 1.txt 2.txt
2、直接指定多個(gè)文件: awk '{...}' a.txt b.txt c.txt ...
awk對(duì)多文件的處理流程是,依次讀取各個(gè)文件內(nèi)容,如上例,先讀a.txt,再讀b.txt....

那么,在多文件處理的時(shí)候,如何判斷awk目前讀的是哪個(gè)文件,而依次做對(duì)應(yīng)的操作呢?
1、當(dāng)awk讀取的文件只有兩個(gè)的時(shí)候,比較常用的有兩種方法
一種是awk 'NR==FNR{...}NR>FNR{...}'  file1 file2   或awk 'NR==FNR{...}NR!=FNR{...}' file1 file2
另一種是 awk 'NR==FNR{...;next}{...}' file1 file2
了解了FNR和NR這兩個(gè)awk內(nèi)置變量的意義就很容易知道這兩種方法是如何運(yùn)作的

FNR         The input record number in the current input file.       #已讀入當(dāng)前文件的記錄數(shù)
NR          The total number of input records seen so far.            #已讀入的總記錄數(shù)
next    Stop processing the current input record.  The next input record  is
        read  and  processing  starts over with the first pattern in the AWK
        program.  If the end of the input data is reached, the END block(s),
        if any, are executed.

對(duì)于awk 'NR==FNR{...}NR>FNR{...}'  file1 file2
讀入file1的時(shí)候,已讀入file1的記錄數(shù)FNR一定等于awk已讀入的總記錄數(shù)NR,因?yàn)閒ile1是awk讀入的首個(gè)文件,故讀入file1時(shí)執(zhí)行前一個(gè)命令塊{...}
讀入file2的時(shí)候,已讀入的總記錄數(shù)NR一定>讀入file2的記錄數(shù)FNR,故讀入file2時(shí)執(zhí)行后一個(gè)命令塊{...}

對(duì)于awk 'NR==FNR{...;next}{...}' file1 file2
讀入file1時(shí),滿足NR==FNR,先執(zhí)行前一個(gè)命令塊,但因?yàn)槠渲杏衝ext命令,故后一個(gè)命令塊{...}是不會(huì)執(zhí)行的
讀入file2時(shí),不滿足NR==FNR,前一個(gè)命令塊{..}不會(huì)執(zhí)行,只執(zhí)行后一個(gè)命令塊{...}

2、當(dāng)awk處理的文件超過(guò)兩個(gè)時(shí),顯然上面那種方法就不適用了。因?yàn)樽x第3個(gè)文件或以上時(shí),也滿足NR>FNR (NR!=FNR),顯然無(wú)法區(qū)分開(kāi)來(lái)。
所以就要用到更通用的方法了:
1、ARGIND 當(dāng)前被處理參數(shù)標(biāo)志: awk 'ARGIND==1{...}ARGIND==2{...}ARGIND==3{...}... ' file1 file2 file3 ...
2、ARGV 命令行參數(shù)數(shù)組:   awk 'FILENAME==ARGV[1]{...}FILENAME==ARGV[2]{...}FILENAME==ARGV[3]{...}...' file1 file2 file3 ...   
3、把文件名直接加入判斷: awk 'FILENAME=="file1"{...}FILENAME=="file2"{...}FILENAME=="file3"{...}...' file1 file2 file3 ...
#沒(méi)有前兩種通用

論壇徽章:
0
37 [報(bào)告]
發(fā)表于 2011-11-07 11:13 |只看該作者
回復(fù) 36# Shell_HAT
cat aa
1
2
3
4
5


awk '$1==3{printf "|| "$0}{printf " @@ "$0}{print $0}' aa
1@@ 1
2@@ 2
3@@ 3
4@@ 4
5@@ 5


沒(méi)看懂啊。怎么執(zhí)行的啊。。
不是$1等于3的時(shí)候才執(zhí)行后面的命令么?
awk '$1==3{printf "|| "$0}' aa
awk '$1==3{printf "|| "$0}{printf " @@ "$0}' aa
為什么這樣執(zhí)行什么也沒(méi)有。。。

論壇徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年紀(jì)念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役紀(jì)念章
日期:2022-04-24 14:33:24
38 [報(bào)告]
發(fā)表于 2011-11-07 11:24 |只看該作者
回復(fù) 37# tt_yy123
  1. dos2unix aa | awk '$1==3{printf "|| "$0}'
復(fù)制代碼

論壇徽章:
0
39 [報(bào)告]
發(fā)表于 2011-11-07 11:32 |只看該作者
回復(fù) 38# Shell_HAT


    dos2unix aa | awk '$1==3{printf "|| "$0}'

--->謝謝這位仁兄。!

論壇徽章:
0
40 [報(bào)告]
發(fā)表于 2011-11-07 13:53 |只看該作者
小伙子學(xué)習(xí)盡頭十足,忘繼續(xù)保持,加油
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP