awk 樣式掃描處理工具,管用。 我收集了一些比較簡單實用的,作了筆記,分享給你們,一個字一個字打出來的。 以爲好,就笑一個吧 awk '{print}' /etc/passwd :打印/etc/passwd全部內容 awk -F : '{print $1}' /etc/passwd :以 ":" 爲分隔符 ,打印/etc/passwd第一字段,也就是用戶名 awk -F : '{print $1 " " $2}' /etc/passwd :同上功能,打出第1,第二字段。 中間加個空格輸出。 awk 'BEGIN{FS=":";OFS="\t";ORS="\n"}{print $1,$2}' /etc/passwd *** FS:字段分隔符 OFS:輸出字段分隔符 ORS:輸出記錄分隔符 以上命令爲以 : 爲分隔符,每一個字段用\t隔開,輸出一行後\n (換行), 輸出第1,2字段。中間用,隔開 awk '{print NR}' /etc/passwd :讀取/etc/passwd的每一行行號 (NR至今的讀取記錄數) awk 'END{print NR}' /etc/passwd : 加了個END,讀最後一個讀取記錄數的數字! 輸出結果:29 表示29個用戶 awk '/root/' /etc/passwd :輸出 /etc/passwd裏包含 root 這個字眼的 記錄!打印出來 。'/ /'裏表示的是符合字符 awk '{if($1~/root/) print $0}' /etc/passwd : 若是第一個字段裏有符合root字眼的,打印當前行,$0表示當前行(當前記錄) awk '/^[Rr]oot/' /etc/passwd : '//'裏表示匹配字符 ^表示匹配第一個字母 [Rr]表示這個字母是R或者r也能夠 因此上面的語句表示:第一個字母符合Root或者root就打印改記錄條 awk '$2~/^..u/' /etc/passwd : ~/表示匹配,這裏表示第2個字段第3個字母爲u的話,就打印出該行 awk '/(lin|root)/' /etc/passwd :記錄裏有匹配 lin或者root的!就打印出來 echo ababab | awk 'gsub(/a/,"c")' : 輸出 ababab 再把輸出結果交給awk處理,最後吧 a換成了c .輸出爲 cbcbcb awk '{if($4!~"301|302") print $0}' filename :要是 第4個字段, 不匹配 301或者 302!就打印出該記錄 !~表示不匹配,~表示匹配