cut 命令類似sed命令一樣(sed基礎,sed進階),也是以行為基本的處理單位;該命令必須指定選項,從文件的每一行剪切字節、字符或欄位並將這些字節、字符或欄位寫至標準輸出。
命令用法:
cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-s] [-d delim] [file ...]選項簡介:
b:以字節為單位進行分隔,使用n指定不要將多字節字符拆開
c:以字符為單位進行分割
d:自定義分隔符,可以使用f指定顯示哪個分隔段
示例一、b選項的使用 # 測試文件數據
% cat test.txt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
# 以字節為單位,輸出第二個字節數據
% cut -b 2 test.txt
a
b
t
a
# 以字節為單位,輸出2-5個字節數據
% cut -b 2-5 test.txt
aemo
bus:
tp:x
ames
# 以字節為單位,輸出1,2,3位元組數據
% cut -b 1,2,3 test.txt
dae
dbu
ftp
gam
# 測試中文數據
% cat t.txt
劉德華
張學友
郭富城
黎明
# 以字節為單位,輸出亂碼
% cut -b 2 t.txt
�
�
�
�
# 以字節為單位,n指定不要將多字節字符分開
% cut -nb 2 t.txt
劉
張
郭
黎示例二、c選項的使用c選項以字符為單位進行分隔,而b選項只以字節(8位二進位位)來分隔,所以處理中文時,會顯示成亂碼。
# 測試文件數據
% cat t.txt
劉德華
張學友
郭富城
黎明
# -c選項是以字符為分隔單位
% cut -c 3 t.txt
華
友
城
# 取1和3兩個字符
% cut -c1,3 t.txt
劉華
張友
郭城
黎示例三、d選項的使用 # 測試數據
% cat test.txt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
# d指定:分隔,-f 1指定輸出第一段
% cut -d : -f 1 test.txt
daemon
dbus
ftp
games
# 一種更緊湊的寫法
% cut -d':' -f1,7 test.txt
daemon:/sbin/nologin
dbus:/sbin/nologin
ftp:/sbin/nologin
games:/sbin/nologin通過示例其實我們也可以發現,cut適合處理單字符分隔的內容,如果是多個字符分隔的內容,cut其實處理起來就沒有那麼方便了。