cut命令詳解

2021-06-28 11:40:11 字數 3746 閱讀 7608

**:

正如其名,cut的工作就是「剪」,具體的說就是在檔案中負責剪下資料用的。cut是以每一行為乙個處理物件的,這種機制和sed是一樣的。

剪下依據

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

第一,位元組(bytes),用選項-b

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

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

例:

一,按位元組cut:

注意:乙個空格算乙個位元組,乙個漢字算三個位元組

[root@localhost ~]# date

2023年08月11日 星期四20:44:52 edt

[root@localhost ~]# date |cut -b 1-4                取前四個位元組

2011

[root@localhost ~]# date |cut -b 1-6

2011

[root@localhost ~]# date |cut -b 1-7           乙個漢字算三個位元組

2023年

[root@localhost ~]# date |cut -b 1-10

2023年08

多個定位之間用逗號隔開:

[root@localhost ~]# date |cut -b 1-7,10

2023年8

[root@localhost ~]# date |cut -b 10,1-7   cut會先把-b後面所有的定位進行從小到大排序,然後再提取

2023年8

負號的使用:

[root@localhost ~]# date |cut -b -4

2011

[root@localhost ~]# date |cut -b 4-

1年08月11日 星期四21:05:30 edt

[root@localhost ~]# date |cut -b -4,4-

2023年08月11日 星期四21:06:53 edt

-4表示從第乙個位元組到第四個位元組,而4-表示從第四個位元組到行尾。這兩種情況下,都包括了第4個位元組「1」。如果我執行date |cut -b -4,4-,會輸出整行,不會出現連續兩個重疊的1

二,按字元cut:

按字元cut相對比較簡單,中文字元和空格都算乙個字元。

[root@localhost ~]# date |cut -c 1-5

2023年

[root@localhost ~]# date |cut -c 5,9,13

年月日

三、按域cut

以/etc/passwd檔案為例:

[root@localhost ~]# head -n5 /etc/passwd |cut -d : -f 1,3-5

root:0:0:root

bin:1:1:bin

daemon:2:2:daemon

adm:3:4:adm

lp:4:7:lp

-d指定域分隔符,-f 指定要剪出哪幾個域,這個與awk的輸出特定字段功能一樣。

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

如何分的清空格和製表符?

[root@localhost ~]# cat test            這個檔案各單詞間存在單個空格、製表符和多個空格

data11【單個空格 】data12 【製表符】data13

data21【多個空格】data22【單個空格】data23

data31 【單個空格 】data32 【   多個空格data33

[root@localhost ~]# sed -n l test           用sed命令可以讓製表符原形畢露~

data11 data12\tdata13$

data21 data22 data23$

data31 data32    data33$

[root@localhost ~]# cat test |cut  -f 2

data13

data21   data22 data23

data31 data32    data33

[root@localhost ~]# cat test |cut -d "   " -f 2           cut的間隔符只允許是乙個字元

cut: the delimiter must be a single character

請嘗試執行「cut --help」來獲取更多資訊。

[root@localhost ~]# cat test |cut -d " " -f 2

data12 data13        中間那個空白字元是製表符

第乙個空格後面還是空格,所以輸出空格

data32                   單個空格後面就是data32

cut命令詳解

為了控制滾屏,可以按ctrl s鍵,停止滾屏 按ctrl q鍵可以恢復滾屏。按ctrl c 中斷鍵可以終止該命令的執行,並且返回shell提示符狀態。cut 選項 引數 b 僅顯示行中指定直接範圍的內容 c 僅顯示行中指定範圍的字元 d 指定欄位的分隔符,預設的字段分隔符為 tab f 顯示指定欄位...

cut命令詳解

用於切割檔案中的字元,提取檔案的某些值 注 並不能用於切割檔名 引數 b 按照位元組切割檔案 例子 cat test.txt i am oldboy my qq is 1234567cut b 3 4 test.txt 輸出 am cut b 4 test.txt 輸出 i am cut b 4 t...

cut命令詳解

基礎命令學習目錄首頁 cut為了控制滾屏,可以按ctrl s鍵,停止滾屏 按ctrl q鍵可以恢復滾屏。按ctrl c 中斷鍵可以終止該命令的執行,並且返回shell提示符狀態。cut 選項 引數 b 僅顯示行中指定直接範圍的內容 c 僅顯示行中指定範圍的字元 d 指定欄位的分隔符,預設的字段分隔符...