Cut
外觀
Cut 是一種在許多平臺上可用的 Unix 命令列工具,用於從輸入行中提取欄位等。
Cut 的命令列選項又稱開關
- -clist: 顯示行的選定字元。
- -flist: 顯示行的選定欄位,預設情況下以製表符分隔。
- -dchar: 將欄位分隔符從製表符切換到 char。
- -s: 不顯示(“抑制”)不包含欄位分隔符的行。
某些版本的 cut 的命令列選項又稱開關
- -b: 顯示行的選定位元組。
- -n: 不分割多位元組字元。
Cut 使用示例
- cut -f1 file.txt
- 顯示每行的第一個欄位,使用製表符作為欄位分隔符。
- echo a:b | cut -d: -f2
- 顯示每行的第二個欄位,使用冒號作為欄位分隔符。
- echo a b c | cut -d" " -f1,3
- echo a b c d e | cut -d" " -f1-3,5
- echo a b c | cut -d" " -f3,2,1
- 輸出 "a b c",忽略 -f 之後反轉的順序。
- echo a b c d | cut -d" " -f2-
- 輸出第二個和所有後續欄位,即 "b c d"。
- echo abcd | cut -c3,4
- 不按欄位處理,而是按字元處理。因此,輸出 "cd"。
- echo abcdefgh | cut -c1-3,6-8
- 輸出 abcfgh
Cut 領域中類似工具的使用示例
- echo a b|awk '{print $2}'
- 顯示 "b",以任意數量的製表符或空格分隔欄位。因此,對於 awk,"b" 是第二個欄位,而對於 cut -d" ","b" 是第三個欄位。
- echo a b|awk '{print $2 $1}'
- 顯示 "ba",保留欄位指定的順序。
- echo a b|sed "s/ */ /g" |cut -f2 -d" "
- 顯示 "b"。使用 sed 將空格序列首先壓縮成單個空格。
Cut 受以下限制
- 無法指定“一個或多個空格”或類似的欄位分隔符。
- 無法更改輸出中欄位的順序。
注意:有些人發現 awk 或 gawk 能夠滿足 cut 限制過於嚴格的需求。
GNU cut for MS Windows 的版本可從 GnuWin32 專案 以及 Cygwin 獲取。
- GNU Coreutils 在 gnu.org 上
- Unix cut(1) 手冊頁 在 man.cat-v.org 上
- 維基百科關於 Cut 的文章。