cut

1 .語法

cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]

2 .主要參數

-b :以字節爲單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標誌。

-c :以字符爲單位進行分割。

-d :自定義分隔符,默認爲製表符。

-f :與-d一起使用,指定顯示哪個區域。

-n :取消分割多字節字符。僅和 -b 標誌一起使用。如果字符的最後一個字節落在由 -b 標誌的 List 參數指示的
範圍之內,該字符將被寫出;否則,該字符將被排除。

3 .cut命令主要是接受三個定位方法:

第一,字節(bytes),用選項-b

第二,字符(characters),用選項-c

第三,域(fields),用選項-f

4 .範圍表示:

n:第n個字節/字符/字段

n-:從第n個字節/字符/字段到最後一個字節/字符/字段

n-m:從第n個字節/字符/字段到第m個字節/字符/字段,包括m

-m:從行的開頭到第m個字節/字符/字段,包括m

-:從行開頭到行的最後

5 .例子

(1). 提取每一行的第3個字節

cut -b 3

(2). 提取第3,第4、第5和第8個字節

cut -b 3-5,8

注意:cut會先把-b後面所有的定位進行從小到大排序,然後再提取

cut -b 8,3-5   //同上個效果相同

注意:-3表示從第一個字節到第三個字節,而3-表示從第三個字節到行尾。這兩種情況下,都包括了第三個字節如果我執行cut -b -3,3-,輸出整行,不會出現連續兩個重疊的

(3).以字符爲定位標誌

-c則會以字符爲單位,而-b只會以字節(8位二進制位)來計算

當遇到多字節字符時,可以使用-n選項,-n用於告訴cut不要將多字節字符拆開

//一樣的效果

cut -c 3
cut -nb 3

(4).“域”的提取

設置“間隔符”,再設置“提取第幾個域”

用-d來設置間隔符爲冒號,然後用-f來設置我要取的是第一個域

cut -d : -f 1

(5).空格和製表符時,怎麼分辨

sed -n l 文件名    //如果是製表符(TAB),那麼會顯示爲\t符號,如果是空格,就會原樣顯示

(6).間隔符設置製表符

cut的-d選項的默認間隔符就是製表符,所以當你就是要使用製表符的時候,完全就可以省略-d選項,而直接用-f來取域就可以了

cut -d ' ' -f 1      //兩個單引號之間要有一個空格,只能在-d後面設置一個空格,因爲cut只允許間隔符是一個字符

注意:cut只擅長處理“以一個字符間隔”的文本內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章