shell之sort,uniq,cut
阿新 • • 發佈:2021-12-14
# sort主要是要理解域 # sort選項 -c 測試檔案是否已經分類 -m 合併兩個分類檔案 -u 刪除所有複製行 -o 儲存sort結果的輸出檔名 -b 使用域進行分類時,忽略第一個空格 -n 指定分類是域上的數字分類 -t 域分隔符;用非空格或tab鍵分隔域 -r 對分類次序或比較求逆,意思就是將得到的結果倒序排序 -k 指定分類鍵(域) post1 傳遞到m,n。m為域號,n為開始分類字元數;例如4,6意即以第5域分類,從第7個字元開始 # sort對域的參照方式 關於sort的一個重要事實是它參照第一個域作為域0,域1是第二個域,等等。sort也可以使用整行作為分類依據。 # 示例,將/etc/passwd檔案按第三域(域2)分類 因為第三域是數值,所以分類時候要加上n sort -t: -k 3n /etc/passwd # 指定分類鍵次序,先以第4域,在以第一域分類並求逆 sort -t: -r -k4 -k1 /etc/passwd # uniq用法 unip用來從一個文字檔案中去除或禁止重複行。一般uniq假定檔案已分類,並且結果正確。我們並不強制要求這樣做,如果願意,可以使用任何非排序文字,甚至是無規律行。可以認為uniq有點像sort命令中唯一性選項。對,在某種程式上講正是如此,但兩者又一個重要區別。sort的唯一性選項去除所有重複行,而uniq命令並不這樣做。重複行是什麼?在uniq裡意即持續不斷重複出現的行,中間不夾雜任何其它文字,示例 >>> cat myfile.txt May Day May Day May Day Going Down May Day uniq將前三個May Day看作重複副本,但是因為第4行有不同的文字,故不認為第五行持續的May Day為其副本。uniq將保留這一行 # 命令格式 uniq -u d c -f inputfile outputfile -u 只顯示不重複行 -d 只顯示有重複資料行,每種重複行只顯示其中一行 -c 列印每一重複行出現次數 -n n為數字,前n個域被忽略 # cut用法 cut用來從標準輸入或文字檔案中剪下列或域。剪下文字可以將之貼上到一個文字檔案。 ## 命令格式 cut [options] file1 file2 ## 選項 -c list 指定剪下字元數 -f field 指定剪下域數 -d 指定與空格和tab鍵不同的域分隔符 -c 用來指定剪下範圍,如:-c1, 5-7剪下第一個字元,然後是第5到第7給字元。-c1-50剪下前50個字元 -f 格式與-c相同 -f1, 5剪下第1域,第5域 -f1, 10-12 剪下第1域,第10域到第12域 # 示例使用域分隔符,以冒號為分隔域,並剪下第3域 cut -d: -f3 /etc/passwd
-------------------------------------------
個性簽名:程式碼過萬,鍵盤敲爛!!!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!