星期二, 2月 24, 2009

linux cut 指令小筆記

假設檔案名稱 為test.txt
想要取出最後一欄 ( 因為cut 都是指定第幾欄到第幾欄)


linux-wg5u:/tmp/lab # cat test.txt
123:gsfg:fgsg:sagaL:gdgas:20091234
555:dd:eqgha:20091235
66:dads:20091236

1. 利用反轉 rev 來 結合cut 是一種方式
linux-wg5u:/tmp/lab # rev test.txt | cut -d : -f 1 | rev
20091234
20091235
20091236

2. 利用 awk 來列出最後一行也是一種方式
linux-wg5u:/tmp/lab # awk -F: '{print $(NF)}' test.txt
20091234
20091235
20091236

*************************************************
問題2
檔案內容想要以 L: 來當分隔依據
man cut 指令您應該會看到 cut 的分隔字元只能用單一字元

檔案內容如下
linux-wg5u:/tmp/lab # cat test2.txt
123:gsfg:fgsg:saga L:gdgas:20091234
555:dd L:eqgha:20091235
66:dads L:20091236

用cut 來使用兩個字元來當分隔判斷依據應該是不行
所以採用 awk 來處理

linux-wg5u:/tmp/lab # awk -F 'L:' '{print $1}' test2.txt
123:gsfg:fgsg:saga
555:dd
66:dads

沒有留言: