前一篇學習了awk的基本知識,現在來做一些練習加深一下印象。
假設我們有這樣乙個待處理的檔案"grade.txt":
m.tansley 05/99 48311 green 8 40 44
j.lulu 06/99 48317 green 9 24 26
p.bunny 02/99 48 yellow 12 35 28
j.troll 07/99 4842 brown-3 12 26 26
l.tansley 05/99 4712 brown-2 12 30 28
#列印整個檔案
zhuyupeng@zhuyupeng-pc
~
$ awk '' grade.txt
m.tansley 05/99 48311 green 8 40 44
j.lulu 06/99 48317 green 9 24 26
p.bunny 02/99 48 yellow 12 35 28
j.troll 07/99 4842 brown-3 12 26 26
l.tansley 05/99 4712 brown-2 12 30 28
#列印第一和第四個域
zhuyupeng@zhuyupeng-pc
~
$ awk '' grade.txt
m.tansley green
j.lulu green
p.bunny yellow
j.troll brown-3
l.tansley brown-2
#列印表頭
zhuyupeng@zhuyupeng-pc~
$ awk 'begin
> ' grade.txt
name belt
---------------------------
m.tansley green
j.lulu green
p.bunny yellow
j.troll brown-3
l.tansley brown-2
正規表示式相關:
為使一域號匹配正規表示式,使用符號『~』後緊跟正規表示式,也可以用 i f語句。awk中if後面的條件用()括起來。
#下面**列印$4 包含 brown 的行
zhuyupeng@zhuyupeng-pc~
$ awk '$4~/brown/ ' grade.txt
j.troll 07/99 4842 brown-3 12 26 26
l.tansley 05/99 4712 brown-2 12 30 28
#非精確匹配
zhuyupeng@zhuyupeng-pc
~
$ awk '$3 ~/48/ ' grade.txt
m.tansley 05/99 48311 green 8 40 44
j.lulu 06/99 48317 green 9 24 26
p.bunny 02/99 48 yellow 12 35 28
j.troll 07/99 4842 brown-3 12 26 26
#精確匹配
zhuyupeng@zhuyupeng-pc
~
$ awk '$3=="48" ' grade.txt
p.bunny 02/99 48 yellow 12 35 28
#不匹配 使用 『!~』
zhuyupeng@zhuyupeng-pc
~
$ awk '$0 !~ /brown/' grade.txt
m.tansley 05/99 48311 green 8 40 44
j.lulu 06/99 48317 green 9 24 26
p.bunny 02/99 48 yellow 12 35 28
zhuyupeng@zhuyupeng-pc
~
$ awk '$4 != "brown-2" ' grade.txt
m.tansley 05/99 48311 green 8 40 44
j.lulu 06/99 48317 green 9 24 26
p.bunny 02/99 48 yellow 12 35 28
j.troll 07/99 4842 brown-3 12 26 26
#小於zhuyupeng@zhuyupeng-pc
~
$ awk '$6 < $7 ' grade.txt
m.tansley 05/99 48311 green 8 40 44$1 try better at the next comp
j.lulu 06/99 48317 green 9 24 26$1 try better at the next comp
#設定大小寫
zhuyupeng@zhuyupeng-pc
~
$ awk '/[gg]reen/' grade.txt
m.tansley 05/99 48311 green 8 40 44
j.lulu 06/99 48317 green 9 24 26
#匹配第乙個域的第三個字元是『a』
zhuyupeng@zhuyupeng-pc
~
$ awk '$1 ~/^...a/' grade.txt
m.tansley 05/99 48311 green 8 40 44
l.tansley 05/99 4712 brown-2 12 30 28
#'或'匹配,使用 『|』 ,需使用括號括起來
zhuyupeng@zhuyupeng-pc
~
$ awk '$0 ~/(yellow|brown)/' grade.txt
p.bunny 02/99 48 yellow 12 35 28
j.troll 07/99 4842 brown-3 12 26 26
l.tansley 05/99 4712 brown-2 12 30 28
awk 例項練習(一)
前一篇學習了awk的基本知識,現在來做一些練習加深一下印象。假設我們有這樣乙個待處理的檔案 grade.txt m.tansley 05 99 48311 green 8 40 44 j.lulu 06 99 48317 green 9 24 26 p.bunny 02 99 48 yellow 1...
awk 例項練習(一)
前一篇學習了awk的基本知識,現在來做一些練習加深一下印象。假設我們有這樣乙個待處理的檔案 grade.txt m.tansley 05 99 48311 green 8 40 44 j.lulu 06 99 48317 green 9 24 26 p.bunny 02 99 48 yellow 1...
awk 例項練習(一)
前一篇學習了awk的基本知識,現在來做一些練習加深一下印象。假設我們有這樣乙個待處理的檔案 grade.txt m.tansley 05 99 48311 green 8 40 44 j.lulu 06 99 48317 green 9 24 26 p.bunny 02 99 48 yellow 1...