linux命令(12)cut

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

提取指定字段以外的列:

相關文章
相關標籤/搜索