awk修改原文件 awk中NR和NF到底是什么意思?能舉例說明嗎?
awk中NR和NF到底是什么意思?能舉例說明嗎?NR-記錄數(shù)-當(dāng)前處理行是第一行(因?yàn)閍wk是流處理工具,逐行處理,所以NR不斷增加1)。FNR-記錄的文件號-當(dāng)前處理行是當(dāng)前處理行NF-文件數(shù)-當(dāng)前
awk中NR和NF到底是什么意思?能舉例說明嗎?
NR-記錄數(shù)-當(dāng)前處理行是第一行(因?yàn)閍wk是流處理工具,逐行處理,所以NR不斷增加1)。FNR-記錄的文件號-當(dāng)前處理行是當(dāng)前處理行NF-文件數(shù)-當(dāng)前行中有多少列數(shù)據(jù)(這將根據(jù)每行中設(shè)置的分隔符重新計(jì)算,而默認(rèn)的分隔符是任意連續(xù)的多個(gè)空白字符(NR==FNR)大致相當(dāng)于(argind==1),通常用于確定是否正在處理第一個(gè)文件。但區(qū)別在于:前者是判斷當(dāng)前處理的總行數(shù)等于文件中的行數(shù),一般在第一個(gè)文件中,argind==1是第一個(gè)參數(shù)位置的文件。--但是,如果上一個(gè)文件為空,則NR==FNR將對第一個(gè)非空文件生效,而argind==1將不生效。這種微妙的區(qū)別使它們能夠適用于不同的需要。在實(shí)際使用中,還可以使用文件名來確定正在處理的文件。以上環(huán)境:使用awk連續(xù)處理多個(gè)文件時(shí),例如awk“command sequence”file1 File2 file*來確定要處理哪個(gè)文件。