cut 命令從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段輸出至標準輸出。
如果不指定 File 參數,cut 命令將讀取標準輸入。必須指定 -b、-c 或 -f 標誌之一。若處理的是字段,則定界符隔開的即爲各字段,而輸出時字段也以給定的定界符隔開。默認的定界符爲製表字符(TAB)。
語法
cut [-option] [file]
參數:
- -b,–bytes:以字節爲單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標誌。
- -c,–characters :以字符爲單位進行分割。
- -d,–delimiter :自定義分隔符,默認爲製表符。
- -f,–field :與-d一起使用,指定顯示哪個區域,即選取每行的第N列。
- -n :取消分割多字節字符。僅和 -b 標誌一起使用。如果字符的最後一個字節落在由 -b 標誌的 List 參數指示的
範圍之內,該字符將被寫出;否則,該字符將被排除
範圍控制:
n:只有第n項
n-:從第n項一直到行尾
n-m:從第n項到第m項(包括m)
-m:從一行的開始到第m項(包括m)
-:從一行的開始到結束的所有項
實例:
cat /etc/passwd | cut -b1-3 #取每行的第1-3字字節
cat /etc/passwd | cut -b1-3,5-7,8 #取每行的第1-3,5-7,8的字節(後面的數字會先進行從小到大的排列) 需要事先知道具體字節,很容易出錯
cat song.txt |cut -nb 1,2,3#當 -b 添加 -n 後則不會分割多字節 (我的系統是utf-8,所以需要用三個字節來表示一個漢字)
cat /etc/passwd | cut -c1,3 #適用於中文
cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段
cat /etc/passwd | cut -d '' #以空格進行分割,且是一個空格
一、cut實戰演練
cut.txt文件
1 2 3 4 |
|
實戰演練
輸出每一行的第二個字節內容
1 2 3 4 5 6 7 |
|
輸出每一行的第二個字符內容
1 2 3 4 5 6 7 |
|
輸出每一行第一列內容
1 2 3 4 5 6 7 |
|
輸出每一行第一、二列內容
1 2 3 4 5 6 |
|