SHELL NR與FNR區別
NR,表示awk開始執行程式後所讀取的資料行數.
FNR,與NR功用類似,不同的是awk每開啟一個新檔案,FNR便從0重新累計.
下面看兩個例子:
1,對於單個檔案NR 和FNR 的 輸出結果一樣的 :
# awk '{print NR,$0}' file1
1 a b c d
2 a b d c
3 a c b d
#awk '{print FNR,$0}' file1
1 a b c d
2 a b d c
3 a c b d
2,但是對於多個檔案 :
# awk '{print NR,$0}' file1 file2
1 a b c d
2 a b d c
3 a c b d
4 aa bb cc dd
5 aa bb dd cc
6 aa cc bb dd
# awk '{print FNR,$0}' file1 file2
1 a b c d
2 a b d c
3 a c b d
1 aa bb cc dd
2 aa bb dd cc
3 aa cc bb dd
在看一個例子關於NR和FNR的典型應用:
現在有兩個檔案格式如下:
#cat account
張三|000001
李四|000002
#cat cdr
000001|10
000001|20
000002|30
000002|15
想要得到的結果是將使用者名稱,帳號和金額在同一行列印出來,如下:
張三|000001|10
張三|000001|20
李四|000002|30
李四|000002|15
執行如下程式碼
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-1768236/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- awk內建變數NR與FNR使用詳解變數
- 轉 shell中$(( )) 與 $( ) 還有${ }的區別
- shell指令碼:$(())與$()還有${}的區別指令碼
- linux shell 中 printf 與 echo的區別Linux
- shell中的點命令與source命令的區別
- shell指令碼頭,#!/bin/sh與#!/bin/bash的區別.指令碼
- 【shell】while read line 與for迴圈的區別While
- 終端和shell的區別
- &與&&, |與||區別
- 0927hugepages與nr_overcommit_hugepagesMIT
- ??與?:的區別
- Shell重定向&>file、2>&1、1>&2的區別
- Shell--引用變數帶不帶""的區別變數
- shell與Linux命令有什麼區別?它們之間有聯絡嗎?Linux
- <section>與<article> 區別
- showModal()與show() 區別
- localStorage與sessionStorage 區別Session
- mouseenter與mouseover區別
- GET與POST區別
- put與putIfAbsent區別
- JavaScript 與TypeScript區別JavaScriptTypeScript
- animation與transition 區別
- classList與className區別
- NIO與IO區別
- match()與exec()區別
- JavaScript與ECMAScript 區別JavaScript
- currentTarget與target區別
- 區別mouseover與mouseenter?
- offset與style區別
- onmouseover與onmouseenter區別
- 運算子與= 區別
- MySQL的@與@@區別MySql
- prop()與attr()區別
- #include與#include區別
- mybatis #與$的區別MyBatis
- Null 與 “” 的區別Null
- exp與expdp區別
- WebViewClient與WebChromeClient 區別WebViewclientChrome