-b :以位元組為機關進行分割。這些位元組位置将忽略多位元組字元邊界,除非也指定了 -n 标志。
-c :以字元為機關進行分割。
-d :自定義分隔符,預設為制表符。
-f :與-d一起使用,指定顯示哪個區域。
-n :取消分割多位元組字元。僅和 -b 标志一起使用。如果字元的最後一個位元組落在由 -b 标志的 List 參數訓示的<br />範圍之内,該字元将被寫出;否則,該字元将被排除。
cut指令主要是接受三個定位方法:
第一,位元組(bytes),用選項-b
第二,字元(characters),用選項-c
第三,域(fields),用選項-f
1.cut -b 3-5,8 選取第3-5個位元組,和第8個位元組。
2.cut -b 必須從小到大,cut -b 8,3-5 隻會顯示3-5位元組。
3.cut -b -3:顯示第1到第3
cut -b 3-:顯示第3到最後
cut -b -3,3- :顯示全部,并不會重複中間的交集
4. cut -c 字元分界
[[email protected] programming]$ cat cut_ch.txt
星期一
星期二
星期三
星期四
[[email protected] programming]$ cut -b 3 cut_ch.txt
�
�
�
�
[[email protected] programming]$ cut -c 3 cut_ch.txt
一
二
三
四
當遇到多位元組字元時,可以使用-n選項,-n用于告訴cut不要将多位元組字元拆開。例子如下:
[[email protected] programming]$ cat cut_ch.txt |cut -b 2
�
�
�
�
[[email protected] programming]$ cat cut_ch.txt |cut -nb 2
[[email protected] programming]$ cat cut_ch.txt |cut -nb 1,2,3
星
星
星
星
5.cut -d ' ' -f 1,2-,或者-3
但是cut -d 隻對單一空格的有效,多空格或者制表符就不行。
這個時候需要AWK
舉例:
[email protected] ~/work/shell $ echo "a b c" | cut -d " " -f2
[email protected] ~/work/shell $ echo "a b c" | awk '{print $2}'
b
去空方法:
1. sed s'/ *//g' urfile
2. tr -d " "
3. awk -v OFS="" '$1=$1' ufile