歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

linux awk 命令詳解

假設last -n 5的輸出如下

[root@www ~]# last -n 5 <==僅取出前五行
root     pts/1   192.168.1.100  Tue Feb 10 11:21   still logged inroot     pts/1   192.168.1.100  Tue Feb 10 00:46 - 02:28  (01:41)
root     pts/1   192.168.1.100  Mon Feb  9 11:41 - 18:30  (06:48)
dmtsai   pts/1   192.168.1.100  Mon Feb  9 11:41 - 11:41  (00:00)
root     tty1                   Fri Sep  5 14:09 - 14:10  (00:01)
如果只是顯示最近登錄的5個帳號
-n  |
如果只是顯示/etc/passwd的賬戶

#cat /etc/passwd |awk  -F ':'  '{print $1}'  root
daemon
bin
sys
如果只是顯示/etc/passwd的賬戶和賬戶對應的shell,而賬戶與shell之間以tab鍵分割
#cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'root    /bin/bash
daemon 
/bin/shbin   
/bin/shsys     
/bin/sh
如果只是顯示/etc/passwd的賬戶和賬戶對應的shell,而賬戶與shell之間以逗號分割,而且在所有行添加列名name,shell,在最後一行添加"blue,/bin/nosh"。

cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'name,shell
root,/bin/bash
daemon,/bin/shbin,/bin/shsys,/bin/sh....
blue,/bin/nosh
搜索/etc/passwd有root關鍵字的所有行
#awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
搜索/etc/passwd有root關鍵字的所有行,並顯示對應的shell

# awk -F: '/root/{print $7}' /etc/passwd             
/bin/bash
統計某個文件夾下的文件占用的字節數,過濾4096大小的文件(一般都是文件夾):ll | awk 'BEGIN {size=0;} {if($5!=4096){size=size+$5;}} END{print "[size] is",size/1024/1024,"M"}'

[size] is 62.7247 M

Copyright © Linux教程網 All Rights Reserved