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}'


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

Unix 基本指令: Cut 有 4 則回應

  1. jeffhung 說道:

    我都這樣在 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`;

  2. Tsung 說道:

    感謝大師提供使用案例~~ m(_ _)m

  3. $4 說道:

    awk 的作法:
    $ls -l | awk '{ pinrt $1 }'
    ^^^^^ 錯字

  4. Tsung 說道:

    感謝指正~~~ 已修復~~~ 🙂

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料