星期四, 十二月 14, 2006
Unix 基本指令: Cut
突然發現 cut 的好用, 來做 Linux (Unix) 基本指令介紹, 也當做筆記來用~~
cut 有三個參數:
- -c list: 一段範圍清單, 以','隔開, 直列切割(ex: 1,3,5-10,33)
- -d delim: 可以設中間間隔符號要哪種, 預設是tab分隔切割, 通常會搭配 -f(決定要取切割欄位的哪欄)
- -f list: 以欄位為主, 作剪下的動作, list 是欄位編號或一段範圍的清單(類同 -c 參數)
cut 使用範例:
-d, -f: 拉 passwd 檔 第1欄和第5欄(用 : 分隔)
$ cut -d : -f 1,5 /etc/passwd
root:root
sys:sys
abc:ABC Lee
...
-d, -f: 一樣拉 passwd 檔, 用 : 分隔, 只拉第 6 欄
$ cut -d : -f 6 /etc/passwd
/root
/dev
...
-c: 直的剪下來, 直的剪 1-10個字(很常用, 就是為了這個指令寫這篇.. XD)
$ ls -l | cut -c 1-10
total 201
drwxr-xr-x
drwxr-xr-x
-rw-r--r--
-rw-r--r--
awk 的作法:
$ awk -F: ' { print $1, $5 }' /etc/passwd
$ awk -F: -v 'OFS=:' '{ print $1, $5}' /etc/passwd (-v 是設 OFS變數, OFS=中間間隔要用何種符號秀出來)
$ awk -F: '{ print $1":"$5}' /etc/passwd
$ ls -l | awk '{ print $1 }'
$ ls -l | awk '{ print $1, $3}'
我都這樣在 sh script 裡,抓 SVN 的 rev/date 資料:
__revision=`echo '$Rev: 112 $' | cut -d' ' -f2`;
__rev_date=`echo '$Date: 2006-11-27 16:26:10 +0800 (Tue, 27 11 2006) $' | cut -d' ' -f2`;
Comment by
jeffhung
(12/14/2006 12:47)
awk 的作法:
$ls -l | awk '{ pinrt $1 }'
^^^^^ 錯字
Comment by
$4
(12/18/2006 12:53)
發表迴響
PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~





