1. 程式人生 > >【shell】cut命令及常見用法

【shell】cut命令及常見用法

【背景】

cut是一個將文字按列進行劃分的文字處理工具。cut命令逐行讀入文字,然後按列劃分欄位並進行提取、輸出等操作。

【命令格式】

cut [option] filename
cat filename | cut [option]
可以看到,cut命令既可以用檔案作為引數也可以接受標準輸入。

【常見用法】

本次實驗所用的檔案text.txt的內容為:

11 Tom computer-science 4.0
12 Jack economic 3.8
13 Marry biology 3.9
14 Cherry mathematics 4.1
15 Jim chemistry 4.2

1.提取檔案中的人名

cut -d ' ' -f 2 text.txt 
Tom
Jack
Marry
Cherry
Jim
其中,-f選項指定需要提取的欄位編號。

2.提取多個欄位

(1)-f field_list:field_list為欄位列表,指定需要提取的欄位。

(2)-f N-:指從第N個欄位到行尾。

(3)-f N-M:指從第N個欄位到第M個欄位。

(4)-f -N:指從行首到第N個欄位。

3.設定定界符

cut的預設定界符是空格,但有些檔案的定界符不是空格,此時可以用-d選項設定定界符。

echo 1:2:3:4 | cut -d ':' -f 3
3
這裡設定了定界符為冒號,因此cut可以解析用冒號分隔的各個欄位。

4.按位元組/字元分割

cut命令最常見的-f選項按照欄位分割文字,其實cut還支援按照位元組或者字元分割文字。

(1)-c:按字元分割。

(2)-b:按位元組分割。

例如需要輸出檔案每一行的前兩個字元:

cut -c 1-2 text.txt 
11
12
13
14
15