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只擅長處理“以一個字符間隔”的文本內容