[Shell] awk學習(4)-read input file
NR,FNR,NF的定義在 http://blog.itpub.net/24237320/viewspace-2072968/
FS,OFS,RS,ORS的定義在 http://blog.itpub.net/24237320/viewspace-2062456/
下面為其他的情況或者例子
1.更改field後,print內容會有發生變化
[/tmp/test]# awk '{print $2;$2=$2-10;print $0}' ff2 #$2發生變更後,$0內容也跟著發生變化
13
Jan 3 25 15 115
2.print虛擬列
[/tmp/test]# awk '{$6=$2+$3+$4+$5;print $6}' ff2
[/tmp/test]# awk '{$6=$2+$3+$4+$5;print $6,$0}' ff2 #會加上後面新增的$6列,增加的field會在$0中顯示
168 Jan 13 25 15 115 168
.....
增加了虛擬列後,相應的NF數值也會增加
[/tmp/test]# awk '{$6=$2+$3+$4+$5;print $6,$0,NF}' ff2
168 Jan 13 25 15 115 168 6
也可以減小NF
[/tmp/test]# awk '{NF=2;print NF,$0}' ff1 #NF雖然減少了,但是$0不會發生變化
3.NF定義多個分隔符
[/tmp/test]# awk 'BEGIN{FS=" |-|/"}{print $1,$2,$3,$4,$5,$6,$7,$8}' ff1
[/tmp/test]# awk -F " |-|/" '{print $1,$2,$3,$4,$5,$6,$7,$8}' ff1
4.RS 使用空白行作為換行符
[/tmp/test]# cat ff3
Jane Doe
123 Main Street
Anywhere, SE 12345-6789
John Smith
456 Tree-lined Avenue
Smallville, MW 98765-4321
Bruce Li
789 SuZhou
JiangSu China
[/tmp/test]# awk 'BEGIN{RS="";FS="\n";OFS=" $$$ "}{print $1,$2,$3}' ff3 #RS=""使用空白行作為換行符,
Jane Doe $$$ 123 Main Street $$$ Anywhere, SE 12345-6789
John Smith $$$ 456 Tree-lined Avenue $$$ Smallville, MW 98765-4321
Bruce Li $$$ 789 SuZhou $$$ JiangSu China
FS,OFS,RS,ORS的定義在 http://blog.itpub.net/24237320/viewspace-2062456/
下面為其他的情況或者例子
1.更改field後,print內容會有發生變化
[/tmp/test]# awk '{print $2;$2=$2-10;print $0}' ff2 #$2發生變更後,$0內容也跟著發生變化
13
Jan 3 25 15 115
2.print虛擬列
[/tmp/test]# awk '{$6=$2+$3+$4+$5;print $6}' ff2
[/tmp/test]# awk '{$6=$2+$3+$4+$5;print $6,$0}' ff2 #會加上後面新增的$6列,增加的field會在$0中顯示
168 Jan 13 25 15 115 168
.....
增加了虛擬列後,相應的NF數值也會增加
[/tmp/test]# awk '{$6=$2+$3+$4+$5;print $6,$0,NF}' ff2
168 Jan 13 25 15 115 168 6
也可以減小NF
[/tmp/test]# awk '{NF=2;print NF,$0}' ff1 #NF雖然減少了,但是$0不會發生變化
3.NF定義多個分隔符
[/tmp/test]# awk 'BEGIN{FS=" |-|/"}{print $1,$2,$3,$4,$5,$6,$7,$8}' ff1
[/tmp/test]# awk -F " |-|/" '{print $1,$2,$3,$4,$5,$6,$7,$8}' ff1
4.RS 使用空白行作為換行符
[/tmp/test]# cat ff3
Jane Doe
123 Main Street
Anywhere, SE 12345-6789
John Smith
456 Tree-lined Avenue
Smallville, MW 98765-4321
Bruce Li
789 SuZhou
JiangSu China
[/tmp/test]# awk 'BEGIN{RS="";FS="\n";OFS=" $$$ "}{print $1,$2,$3}' ff3 #RS=""使用空白行作為換行符,
Jane Doe $$$ 123 Main Street $$$ Anywhere, SE 12345-6789
John Smith $$$ 456 Tree-lined Avenue $$$ Smallville, MW 98765-4321
Bruce Li $$$ 789 SuZhou $$$ JiangSu China
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24237320/viewspace-2085546/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [Shell] awk學習(1)-pattern{action}
- [Shell] awk學習(2)-pattern{action}
- [Shell] awk學習(3)-regular expression 正規表示式Express
- shell學習總結-4
- AWK 學習
- linux shell 學習摘記(4)Linux
- [Shell] awk初學之常見問題
- awk 學習總結
- AWK 學習筆記筆記
- 解決db file sequential read與db file scattered read
- No input file specified.
- input type="file"使用
- 清空file input框
- awk 系列:如何讓 awk 使用 Shell 變數變數
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- AWK學習一例
- [Shell] awk 陣列(2)陣列
- [Shell] awk 陣列(1)陣列
- awk引用shell變數變數
- awk使用shell變數變數
- shell學習
- db file scattered read與事件db file sequential read相類似(轉)事件
- awk指令碼學習小結指令碼
- Oracle:db file scattered readOracle
- nodejs read/write fileNodeJS
- 事件:db file scattered read事件
- linux學習day4——shell指令碼中Linux指令碼
- shell 中 grep、sed、awk 命令
- 『忘了再學』Shell基礎 — 29、AWK內建變數變數
- reading input to shell
- HTML input file檔案域HTML
- HTML input file 檔案域HTML
- No input file specified 解決方法
- input file圖片上傳
- 學習Shell 教程
- [shell基礎]——read命令
- db file scattered read等待事件事件
- db file sequential read等待事件事件