【shell】awk按域去除重複行
首先解釋一下什麼叫“按域去除重複行”:
有的時候我們需要去除的重複行並不是整行都重複,兩行的其中一列的元素相同我們有的時候就需要認定這兩行重複,因此有了今天的內容。
去除重複行shell有一個原生命令但是不太好使應為這個命令找的重複行是上下文的重複行,也就是說需要提前排序,這樣就增加了不必要的麻煩,我們在這裡選擇使用awk工具進行重複行的去除。
命令如下:
awk '!array[$0]++' Filename
解釋一下這行程式碼,由於awk工作方式的特殊性,也就是按行讀入按行輸出,中間引號內的語句就是以[$0]為元素去map剩下的行,$0代表整行,把0換成數字就是行的index,!表示如果存在相同行就跳過,沒有相同行才要輸出,++是迭代過程。
另外,如果要將結果重定向到檔案中,需要使用shell的檔案O/I符號">"進行操作。
擴充套件:如果我們要找兩個或者多個列相同的行怎麼辦?
在定義[]的時候我們可以如下寫法:
awk '!array[$1,$2]++' Filename
這樣就可以鑑別兩列相同的行,多列亦如此。
相關推薦
【shell】awk按域去除重複行
首先解釋一下什麼叫“按域去除重複行”: 有的時候我們需要去除的重複行並不是整行都重複,兩行的其中一列的元素相同我們有的時候就需要認定這兩行重複,因此有了今天的內容。 去除重複行shell有一個原生命令但是不太好使應為這個命令找的重複行是上下文的重複行,也就是說需要提前排序,這樣就增加了不必要的麻煩,我們在
【程式設計技術-Shell】AWK使用大全
1. AWK中輸出特殊字元 輸出單引號 涉及到轉義字元,但是在使用普通的方法進行轉義時,會遇到下面的問題 正確的方法:'\'',使用單引號將轉義字元括起來,然後後面加上單引號 輸出其他特殊字元 輸出其他特殊字元,只需要在雙引號內即可,\(反斜槓)需要在前面加上反斜
【shell】1、變數的宣告、引用及作用域
shell程式 以檔案形式存放==批量的Linux命令集合==,該檔案能夠被Shell解釋執行,這種檔案就是Shell指令碼程式 通常由一段Liunx命令、Shell命令、控制語句以及註釋語句構成 Shell指令碼的編寫 Shell指令碼是純文字檔案,可以使用任何文字編輯器編寫
【shell】獲取第10+個位置參數
ldo 執行 logs 解釋 shell腳本 ron 花括號 2個 bin 轉載自:http://www.cnblogs.com/sheldonxu/archive/2012/06/25/2560770.html 在Shell腳本中,可以用$n的方式獲取第n個參數,例如,一
【總結】spark按文本格式和Lzo格式處理Lzo壓縮文件的比較
spark lzotextinputformat1、描述spark中怎麽加載lzo壓縮格式的文件2、比較lzo格式文件以textFile方式和LzoTextInputFormat方式計算數據,Running Tasks個數的影響 a.確保lzo文件所在文件夾中生成lzo.index索引文件 b.以
【原】fetch跨域請求附帶cookie(credentials)
allow src ssi ann oct o-c ech .com 頭部 HTTP訪問控制 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 解決跨域的方式有很多種,本文介紹“跨域請
【shell】shuf命令,隨機排序
一個 shel 根據 bsp 一行 分享 命令 src 文件 shuf命令主要用來對輸入的每一行進行隨機排序輸出,我們可以利用這個屬性,實現在幾個文件中隨機讀取一個的功能 如下,zls.txt文件有三行,我們想要隨機從中讀取一行。 可以看到,每次讀取順序都不一樣 所
【Shell】建立一個腳本統計當前登錄用戶數
得出 pla 用戶信息 shell splay col ont char image who命令who命令是顯示目前登陸系統的用戶信息,執行who命令可以得知目前哪些用戶登入系統,單獨執行who命令會列出登入賬號,使用的終端機,登入的時間以及從何處登入或正在使用哪個顯示器。
【Shell】-- 基礎知識(1)
com nbsp strong 設置 技術分享 lin 以及 換行符 知識 一、基礎知識 此處介紹Shell基礎知識,以及部分知識點。 概念:Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令並把它送入內核去執行。 分
【Shell】-- 基礎知識(2)
命令別名 進程 ply exp ron -s 歷史 size 接收 1、Shell腳本運行方式 創建Shell腳本文件,一般以.sh結尾(如:example.sh) Shell腳本運行方式如下: 添加 ‘x’ 執行權限(相對或絕對路徑執行) 使用bash或sour
根據內存大小自動匹配和綁定自動伸縮策略【shell】
-a cut ffi else 匹配 nbsp ins num sca #!/bin/bash for x in $(cf a|grep started|tr -s " " |cut -d " " -f 1) do ins_quantity=$(cf
【BZOJ4036】[HAOI2015]按位或 FWT
pre get 一個數 script blog 通過 content cal bsp 【BZOJ4036】[HAOI2015]按位或 Description 剛開始你有一個數字0,每一秒鐘你會隨機選擇一個[0,2^n-1]的數字,與你手上的數字進行或(c++,c的|
【shell】Linux shell 直接賦值和間接賦值
shell linux 變量 運維 什麽是直接賦值? 1.作者直接賦予參數值的方式稱為直接賦值。 2.一般來說,由交互的方式賦值為間接賦值。 例1: varl=arppinging.com 這種就是直接賦值,由編程作者直接賦予固定的值。 例2: [root@arppinging ~]# re
【shell】Linux shell中括號的用法
linux shell 中括號 運維 編程 Linux shell中括號的用法 概述 本文主要介紹Linux中括號的用法,主要包含判斷文件和變量。 **註意事項**:中括號兩邊必須有空格。 使用中括號會涉及到的知識 &&、|| 在本文對文件或
【shell】Linux shell函數入門講解
shell 函數 linux 運維 自動化 Linux shell函數 寫在前面:函數,這個詞在剛剛入門的同學看來很高大上,其實不然,shell裏面的函數非常簡單,函數的作用其實就是減少代碼量,所以這邊的篇幅可能會稍微短一點。 函數的基本格式 函數的格式:function funct
【shell】Linux shell if 語句詳解
linux shell 運維 自動化運維 if語句 1.1 if語句解釋 if 是判斷語句,if語句的作用跟 [ ] 差不多,一般判斷比較多或者執行的語句比較多的話,那麽就會使用if 1.2 if 格式 第一種格式 if [ 判斷條件 ];then 內容 else 內容
【shell】Linux shell之while循環
shell Linux 腳本 while 循環 while和for一樣都是循環語句,相對來說,for循環用的會比較多一點。但是while循環在讀取文件行的時候會特別好用。 while 格式 while [ 條件 ] do 內容 done 實例:判斷i是否小與等於5,如果小於等於
【shell】Linux shell for 循環詳解
linux shell編程 for循環 運維 for 循環格式 for i in 條件 do 內容 done 實例循環1到10並打印 #!/bin/bash - for i in `seq 10` do echo $i done 版權所有:arppinging
【shell】Linux shell 之 case 詳解
shell linux 運維 腳本 case 總的來說,case是一個判斷語句 ,比if更加容易理解一點。 case 語句格式 case in 變量 值1) 內容 ;; 值2) 內容 ;; esac 註意:每個內容後面都需要添加 ;; ,可以跨行也可以同行寫。 實例:
【shell】Linux shell 之break和continue詳解
shell break linux 腳本 break和continue都可以在循環中使用,但是兩個的功能有點不同,比如break是跳出整個循環,而continue則是跳出本次循環,繼續下個循環,下面我們會通過例子來演示這兩個的不同之處。 ** 例子:打印數字1-10,如果 i>