linux uniq sort 排重、排序
有如下檔案a.txt
[[email protected]] /ftproot# cat a.txt
ttt|000001
uuu|000002
uuu|000002
uuu|000002
uuu|000002
1
2
3
4
5
6
7
77
8
9
9
=====================================
#cat a.txt | uniq -c -i | sort -k2 -n 排重,排重輸出的第二列正序排列
#cat a.txt | uniq -c -i | sort -k2 -rn 排重,排重輸出的第二列逆序排列
uniq 引數解釋
-c 統計重複數量
-c Precede each output line with the count of the number of times
the line occurred in the input, followed by a single space.
-d Only output lines that are repeated in the input.
-f num Ignore the first num fields in each input line when doing compar-
isons. A field is a string of non-blank characters separated
from adjacent fields by blanks. Field numbers are one based,
i.e., the first field is field one.
-s chars
Ignore the first chars characters in each input line when doing
comparisons. If specified in conjunction with the -f option, the
first chars characters after the first num fields will be
ignored. Character numbers are one based, i.e., the first char-
acter is character one.
-u Only output lines that are not repeated in the input.
-i Case insensitive comparison of lines.
=============================================================================
linux關於sort命令的高階用法(按多個列值進行排列)
如果單純地使用sort按行進行排序比較簡單,
但是使用sort按多個列值排列,同時使用tab作為分隔符,而且對於某些列需要進行逆序排列,這樣sort命令寫起來就比較麻煩了
比如下面的檔案內容,使用[TAB]進行分割:
Group-ID Category-ID Text Frequency ---------------------------------------------- 200 1000 oranges 10 200 900 bananas 5 200 1000 pears 8 200 1000 lemons 10 200 900 figs 4 190 700 grapes 17
下面使用這些列進行排序(列4在列3之前進行排序,而且列4是逆序排列)
* Group ID (integer) * Category ID (integer) * Frequency “sorted in reverse order” (integer) * Text (alpha-numeric)
排序後的結果應該為:
Group-ID Category-ID Text Frequency ---------------------------------------------- 190 700 grapes 17 200 900 bananas 5 200 900 figs 4 200 1000 lemons 10 200 1000 oranges 10 200 1000 pears 8
可以直接使用sort命令來解決這個問題:
BASH CODEsort -t $'\t' -k 1n,1 -k 2n,2 -k4rn,4 -k3,3 <my-file>
解釋如下:
-t $'\t':指定TAB為分隔符 -k 1, 1: 按照第一列的值進行排序,如果只有一個1的話,相當於告訴sort從第一列開始直接到行尾排列 n:代表是數字順序,預設情況下市字典序,如10<2 r: reverse 逆序排列,預設情況下市正序排列
所以最後的命令:sort -t $’\t’ -k 1n,1 -k 2n,2 -k4rn,4 -k3,3 my-file
相關推薦
linux uniq sort 排重、排序
有如下檔案a.txt [[email protected]] /ftproot# cat a.txt ttt|000001 uuu|000002 uuu|000002 uuu|000002 uuu|000002 1 2 3 4 5 6 7 77 8 9 9 ===
elastic search6.2.2 實現用戶搜索記錄查詢(去重、排序)
replicas pos 結果 etime rep col cas rms idt elastic search6.2.2 實現搜索記錄查詢 ,類似新浪微博這種,同樣的搜索記錄後面時間點的會覆蓋前面的(主要思路:關鍵詞去重,然後按時間排序) 先創建索引 //我的搜索
計算機網路實驗(二)之Wireshark抓包分析獲取URL列表(去重、排序、統計)
實驗要求 本試驗要求基於第一次實驗中訪問某官網主頁時所抓取到的資料包,用Python 3語言、Jupyter Notebook和Pyshark編寫程式碼進行協議分析所需的開發環境,編寫程式碼,以輸出的方式列出首頁以及其所包含的所有資源(至少包含如下型別
Linux Shell -- sort(按照指定列排序)
file.txt 文字如下: 110,1|1,10 110,1|2,101 110,3|1,103 110,4|1,16 110,5|1,12 112,1|1,10 112,1|2,101 112,2|1,103 110,6|1,11 104
List去重、排序操作
// list元素去重 HashSet h = new HashSet(list); list.clear(); list.addAll(h); // list元素屬性
c++中set的使用:初始化和去重、排序
1.set的初始化可以直接用迭代器,set的定義和初始化方式包括: set<T> s;set<T> s(s1);set<T> s(b, e); 其中,b和e分別為迭代器的開始和結束的標記。 例如: #include <stdi
linux Shell sort按照指定列排序
文字如下: 110,1|1,10 110,1|2,101 110,3|1,103 110,4|1,16 110,5|1,12 112,1|1,10 112,1|2,101 112,2|1
Python中的列表,元祖,集合,字典,字串進行去重、排序、翻轉操作
1.列表的操作 -list進行去重操作有如下幾種方法 v1:使用set方法,簡單有效,但是不能保證list內順序不變 list2 = [1,2,3,3,4,2,1,3,4] list2 = list(set(list2)) v2:使用新的一個空列
Linux命令去重統計排序(awk命令去重,sort, uniq命令去重統計)
awk命令去重,sort, uniq命令去重統計 利用Linux命令列進行文字按行去重並按重複次數排序 linux命令列提供了非常強大的文字處理功能,組合利用linux命令能實現好多強大的功能。本文這裡舉例說明如何利用Linux命令列進行文字按行去重並按
Linux中 sort、uniq、wc、cut 隨筆
inf 多少 單位 alt 相同 大小寫 文字 tab -c sort 命令 對 File 參數指定的文件中的行排序,並將結果寫到標準輸出。如果 File 參數指定多個文件,那麽 sort 命令將這些文件連接起來,並當作一個文件進行排序。 選項與參數:-f :忽略大小寫的
Linux學習——管道命令、文字提取命令、排序命令、雙向重導向、字元轉換命令、分割命令、引數代換
目錄 管道命令 文字提取命令:cut、grep cut grep 排序命令:sort、wc、uniq sort uniq wc 雙向重導向:tee 字元轉換命令 tr col join paste expand 分割命
linux中的統計、排序之sort
wc、sort、uniq這三個命令都是用於排序。 sort sort可以依據不同的資料型別進行排序。可以用於對列印的結果進行排序,也可以直接對一個文字檔案的內容按照行為單位進行排序。 格式: sort [-fbMnrtuk] file or stdin 常用引數詳解: -
sort對輸出行排序排重
原來不太會使用sort的使用進行排重處理使用的是uniq。可是使用uniq的前提是待處理檔案的行必須是有序的。所以經常這樣寫:sort file | uniq今天man sort了下,發現使用sort的u選項就可以做到拍重。即:sort -u file
Hadoop—MapReduce練習(資料去重、資料排序、平均成績、倒排索引)
1. wordcount程式 先以簡單的wordcount為例。 Mapper: package cn.nuc.hadoop.mapreduce.wordcount; import java.io.IOException; import org.apache.com
Linux awk+uniq+sort 統計檔案中某字串出現次數並排序
在伺服器開發中,我們經常會寫入大量的日誌檔案。有時候我們需要對這些日誌檔案進行統計。Linux中我們可以利用以下命令簡單高效的實現這一功能。 需要用到的命令簡介 cat命令 cat命令主要有三大功能 1.一次顯示整個檔案 cat file
ACM:一種排序(操作符過載、vector排重)
一種排序 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述現在有很多長方形,每一個長方形都有一個編號,這個編號可以重複;還知道這個長方形的寬和長,編號、長、寬都是整數;現在要求按照一下方式排序(預設排序規則都是從小到大); 1.按照編
Linux學習筆記之管道、重定向與正則表達式
linux管道與重定向 linux學習筆記 linux 正則表達式 管道:前一個命令的輸出,作為後一個命令的輸入命令1 | 命令2 | 命令3| 命令4 #tee 即在顯示器顯示,又在文件在保存文件例#echo “hello ,word” | tee /tmp/ hello.out例#wc -l
Linux系統中查找、刪除重復文件,釋放磁盤空間。
apt-get 簡單 模式 快速 文件中查找 名稱 lease 遞歸 工具 在Linux系操作系統中查找並刪除重復文件的方法的確有很多,不過這裏介紹的是一款非常簡單實用的軟件FSlint。FSlint是一個重復文件查找工具,可以使用它來清除不必要的重復文件,筆者經常使用它來
quick sort / quick select sort 快排 / 快速選擇排序
快速排序(快排)和快速選擇排序,是兩種平均時間複雜度非常高效的演算法,其中: 快排平均時間複雜度是O(nlogn),最壞時間複雜度是O( n2 n 2
JAVA實現冒泡、歸併、希爾、堆排、快速、插入、簡單選擇、排序演算法
氣泡排序 public void bubbleSort(int []nums) { int exchange=nums.length-1; while(exchange!=0) { int bound=exchange; exchange=0; for(i