筆記--awk去除重複域

今天在論壇上瞎逛,看見一條關於awk使用的帖子,去除重複域,不是很瞭解命令,於是網上找了下,在次分享下自己的理解。

 

  1. [root@slave02 test]# cat awk   
  2. aa bb cc  
  3. aa cc bb  
  4. aa bb ac  
  5. bb aa cc  
  6. bb cc aa  
  7. bb aa ac  
  8. [root@slave02 test]#  

 

  1. [root@slave02 test]# cat awk | awk -F" " '!a[$1$2]++{print $1$2}'  
  2. aabb  
  3. aacc  
  4. bbaa  
  5. bbcc  
  6. [root@slave02 test]#  

大家先看這個例子,很容易發現    !a[$1$2]++    是用來去除重複域的   $1 表示第一個域 , 

-F“ ”  表示用雙引號中間的字符來分割域

!a[$1$2]++    表示第一個域和第二個域相同的,只打印一行 。

再來看兩個例子

1:

  1. [root@slave02 test]# cat awk | awk -F" " '!a[$1]++{print $1}'  
  2. aa  
  3. bb  
  4. [root@slave02 test]#  

2:

  1. [root@slave02 test]# cat awk | awk -F" " '!a[$2]++{print $2}'  
  2. bb  
  3. cc  
  4. aa  
  5. [root@slave02 test]#  

如有不對之處,請大家指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章