在 passwd檔裡依冒號為區隔找到第三個是小於數字10的帳號,並只列出第一個與第三個值
cat /etc/passwd |awk 'BEGIN {FS=":"} $3 <= 10 {print $1 " " $3}'

列出包含 root 的且第二個欄位
awk 'BEGIN {FS=":"} {}/root/ {print $1 " " $3}' /etc/passwd

要以什麼來分隔也可以這麼作
awk -F":" '{ print $1 }' /etc/passwd

NF 每一行 ($0) 擁有的欄位總數
NR 目前 awk 所處理的是『第幾行』資料
FS 目前的分隔字元,預設是空白鍵
OFS 輸出分隔字元

搭配 printf
cat /etc/passwd | awk 'BEGIN {FS=":"} $3 < 10 {printf "%10s %10s ",$1,$3}'
結果與
printf "%10s %10s " `cat /etc/passwd | awk 'BEGIN {FS=":"} $3 < 10 {print $1 " " $3}'`
相同

第一行與第二行以後的以不同的排列顯示
more ttt.txt

line1   1       1
line2   2       2
line3   3       3

cat ttt.txt | awk 'NR==1{printf "%10s %10s %10s %10s ",$1,$2,$3,"add"} NR>=2 {printf "%5s %5s %5s %5s ",$1,$2,$3,"wow"}'

     line1          1          1        add
line2     2     2   wow
line3     3     3   wow

以前研究到的 http://ssorc.tw/?p=198

#!/bin/awk
 
BEGIN {
 
FS=":"
 
uidmin=10000
uidmax=20000
 
}
 
{
       if ( $3 >= uidmin && $3 <= uidmax ) {
                 print " make directory " $6 " chown " $3 "." $4 " " $6
                 system( "mkdir -p " $6 ";chown " $3 "." $4 " " $6 )
       }
}

最後修改日期: 2007 年 05 月 25 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。