0%
cut
param
- -b: 輸出指定的範圍, 以 bytes 作為單位.
- -c: 輸出指定的範圍, 以字元數量作為單位.
- -d: 指定分隔字元, 預設是用 tab 作為分隔.
- -f: 輸出指定的範圍, 這個是每行資料的第幾個欄位作為區分.
- -s: 如果該行沒有分隔字元, 不會顯示該行資料.
擷取字元
1 2 3 4 5 6
| # 擷取第 2 個字元至第 10 個字元 ls -l | tail -n 5 | cut -c 2-10 # 擷取第 2-3 個、第 5-6 個與第 8-9 個字元 ls -l | tail -n 5 | cut -c 2-3,5-6,8-9 # 排除第 2 個字元至第 10 個字元 ls -l | tail -n 5 | cut -c 2-10 --complement
|
擷取欄位
- 若要擷取這個 csv 檔的特定欄位,可以使用 cut 指令加上 -d 參數指定欄位分隔字元,並以 -f 參數指定欲擷取的欄位,例如擷取出第 2 個欄位:
1 2
| # 擷取 CSV 檔的第二個欄位 cut -d , -f 2 data.csv
|
輸出分隔字元
1 2 3 4 5 6 7
| # 指定輸出欄位分隔字元 head -n 5 /etc/passwd | cut -d : -f 1,7 --output-delimiter="^_^" root^_^/bin/bash daemon^_^/usr/sbin/nologin bin^_^/usr/sbin/nologin sys^_^/usr/sbin/nologin sync^_^/bin/sync
|
reference