ubuntu cut命令解析(1)

2021-07-26 20:57:52 字數 2463 閱讀 3734

一、定義    

正如其名,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                取前四個位元組

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                    

Caffe學習系列 1 命令列解析

caffe的執行提供三種介面 c 介面 命令列 python介面和matlab介面。本文先對命令列進行解析,後續會依次介紹其它兩個介面。caffe的c 主程式 caffe.cpp 放在根目錄下的tools資料夾內,當然還有一些其它的功能檔案,如 convert imageset.cpp,train ...

C XML解析方式例項解析1

c xml解析通過xpath的方式是如何辦到的呢?具體的操作步驟是什麼呢?那麼下面我們就向你介紹通過xpath的方式來實現c xml解析,希望對你了解c xml解析有所幫助。c xml解析通過xpath的方式的步驟 1 需要先載入文件,然後再讀取想要的節點值。xml文件 protected xmld...

解析tar命令

tar命令的用法如下。摘自 鳥哥的私房菜 tar zxcvfpp tfile sfile 引數說明 z 是否同時具有 gzip 的屬性?x 解開乙個壓縮檔案的引數指令!t 檢視 tarfile 裡面的檔案!c 建立乙個壓縮檔案的引數指令 v 壓縮的過程中顯示檔案!f 使用檔名,請留意,在 f 之後要...