cut命令學習

2021-06-02 10:51:26 字數 2454 閱讀 3526

一、定義    

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

2、剪下依據

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                取前四個位元組

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

[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

[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                    

本文出自 「吖one的學習筆記」 部落格

cut命令學習

一 定義 正如其名,cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut是以每一行為乙個處理物件的,這種機制和sed是一樣的。2 剪下依據 cut命令主要是接受三個定位方法 第一,位元組 bytes 用選項 b 第二,字元 characters 用選項 c 第三,域 fields 用選...

cut命令學習

一 定義 正如其名,cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut是以每一行為乙個處理物件的,這種機制和sed是一樣的。2 剪下依據 cut命令主要是接受三個定位方法 第一,位元組 bytes 用選項 b 第二,字元 characters 用選項 c 第三,域 fields 用選...

linux命令學習之cut

cut命令也是linux下最常用的命令之一。正如其名,cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut是以每一行為乙個處理物件的,這種機制和sed是一樣的。cut命令的剪下度量有三種 按位元組剪下 b byte 按字元剪下 c character 按域剪下 f field 按域剪下...