天天看點

Cut用法 和 awk的相關差別

-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

繼續閱讀