1. 做用spa
cut是一個選取命令,就是將一段數據通過分析,取出咱們想要的。通常來講,選取信息一般是針對「行」來進行分析的,並非整篇信息分析的。3d
2. 用法blog
cut 【參數】【file or stdin】排序
參數:sed
-d:後面接分隔字符,與-f一塊兒使用,默認的字段分隔符爲製表位TAB;file
-f:依據-d的分隔字符將一段信息切割開,用-f取出第幾段;im
-b:以字節爲單位進行分割;d3
-c:以字符爲單位進行分割;數據
-n:與-b連用,不分割多字節字符;db
--complement:提取指定字段以外的列。
範圍表示:
N-:從第N個字節、字符、字段到結尾;
N-M:從第N個字節、字符、字段到第M個(包括M)字節、字符、字段;
-N:從第1個字節、字符、字段到第N個(包括N)字節、字符、字段。
3. 舉例子
3.1 cut -d ':' -f 1
注:cut會先把-f後面全部的定位進行從小到大排序,而後再提取,因此結果不會顛倒順序。
注:結果是輸出整行,不會出現第3個字段的重複出現。
問題:在cut -d中用什麼符號來設定製表符或空格呢?
多個空格和製表位tab怎麼看出來,用sed -n l file命令,l爲字母L的小寫:
注:空格仍是按原來顯示,製表位tab顯示爲\t,換行符爲$
默認分隔符爲製表位tab:
以空格做爲分隔符,-d後的引號裏直接敲一個空格便可:
-d後的引號裏多敲一個空格會出錯:
注:若是文件裏面的某些域是由若干個空格來間隔的,那麼用cut就有點麻煩了,由於cut只擅長處理「以一個字符間隔」的文本內容。
3.2 cut -b 2
取出每行的第2個字節:
3.3 cut -c 2
取出每行的第2個字符:
注:英文字母都是單字節字符,因此-b和-c的結果同樣,若爲中文則不一樣:
3.4 cut -nb 1-3 file
注:當遇到多字節字符時,可使用-n選項,-n用於告訴cut不要將多字節字符拆開。
可是不加-n也能夠,尷尬。。。
3.5 cut -d ' ' -f 2 --complement file
提取指定字段以外的列: