a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學院 > 操作系統 > 正文

awk

2024-06-28 16:01:06
字體:
來源:轉載
供稿:網友

awk:

    grep,sed,awk    grep:文本過濾    sed:文本編輯    awk:文本格式化工具;

一、什么是awk、nawk、gawk

awk是一種用于處理數據和生成報告的UNIX編程語言。nawk時awk的新版本,gawk是基于linux的GNU版本。awk簡介:awk是3個姓氏的首字母,代表創建該語言的3位作者:Alfred V.Aho、Brian W.Kernighan、Peter J.Weinberger。當然也可以叫它wak或kaw,但常用的時awk。最初編寫于1977年,1985年得以改進以支持更大的程序,還增加了可用戶自定義函數、動態正則表達式、同時處理多個輸入文件等功能。awk版本:awk的版本有很多,包括old awk、new awk、GNU awk(gawk)、POSIX awk等            

二、awk的格式:

    基本語法:awk [options] ‘PRogram’ filename …        program: pattern{action statements}        awk [options] 'pattern {action}’ filename        選項        模式        操作        options         -F (field separator)            有三種方法:            1、使用空白符分隔字段(默認值);這種情況下,記錄的前導空白字符和結尾空白字符(空格和/或制表符)將被忽略。都視為一個空白字符。            2、使用其他單個字符來分隔字段。例如:awk -F “:” 或awk ‘BEGIN{FS=“:”}’            3、使用不止一個字符作為字段分隔符,它將被作為一個正則表達式來解釋。例如: FS=“[‘ :/t]"        -v varsvalue (自定義變量,下文有詳細說明)

三、awk工作原理

工作遍歷模式:迭代,循環        1、切片 (注意:默認將空格符和制表符都視為空格,而且多個連續的空格都視為一個(自動刪除重復的空格))        2、賦予變量  (將fs分隔后的字段都存入變量,整行存入$0)        3、遍歷(循環每一個字段,以字段為單位,非每行)        4、逐行 (讀取一行,將pattern和action都執行完成,讀取下一行)pattern(模式):     awk模式用來控制awk對輸入的文本執行什么操作。模式由正則表達式、判別條件真偽的表達式或是二者的組合構成。    模式的特點    1、控制 (模式控制action的范圍:控制第一個左花括號{,到第一個右花括號}內的操作)    2、模式表達式暗含if(如果)的意思    范例:        # awk -F: '/root/{print NR,$1,$3,$5}$3<30{print NR,$0}' /etc/passwd        1 root 0 root        1 root:x:0:0:root:/root:/bin/bash        2 bin:x:1:1:bin:/bin:/sbin/nologin        3 daemon:x:2:2:daemon:/sbin:/sbin/nologin        4 adm:x:3:4:adm:/var/adm:/sbin/nologin        5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin        6 sync:x:5:0:sync:/sbin:/bin/sync        7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown        8 halt:x:7:0:halt:/sbin:/sbin/halt        9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin        10 Operator 11 operator        10 operator:x:11:0:operator:/root:/sbin/nologin        11 games:x:12:100:games:/usr/games:/sbin/nologin        12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin        33 rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin        44 MySQL:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin    說明    1、選項-F,以:為分隔符(默認是以空格為分隔符,可以省略)    2、同一條awk命令,可以有多個不同pattern和不同action的組合    3、行號說明awk是逐行執行    4、pattern控制的范圍驗證,只能控制緊跟著pattern的{}中的內容(紅色部分是pattern1的控制操作結果,整行的是pattern2的控制操作結果)            定界:addr1,addr2         表達式:$3 > 500         /pattern/ 模式,正則表達式        BEGIN{}:在遍歷操作開始之前執行一次         END{}:在遍歷操作結束之后、命令退出自簽執行一次 action:print,printf:用于能夠實現格式化輸出的工具

四、awk格式化輸出

4.1 print函數     print的使用格式:     print item1, item2, ...要點:    1、各項目之間使用逗號隔開,而輸出時則以空白字符分隔;    2、輸出的item可以為字符串或數值、當前記錄的字段(如$1)、變量或awk的表達式;數值會先轉換為字符串,而后再輸出;    3、print命令后面的item可以省略,此時其功能相當于print $0, 因此,如果想輸出空白行,則需要使用print "";例子:# awk 'BEGIN { print "line one/nline two/nline three" }'awk -F: '{ print $1, $3 }' /etc/passwd4.2 printf函數    printf命令的使用格式:    printf "format", item1, item2, ...要點:    1、其與print命令的最大不同是,printf需要指定format;    2、format用于指定后面的每個item的輸出格式;    3、printf語句不會自動打印換行符;/nformat格式的指示符都以%開頭,后跟一個字符;如下:    %c: 顯示字符的ASCII碼;    %d, %i:十進制整數;    %e, %E:科學計數法顯示數值;    %f: 顯示浮點數;    %g, %G: 以科學計數法的格式或浮點數的格式顯示數值;    %s: 顯示字符串;    %u: 無符號整數;    %%: 顯示%自身;修飾符:    #[.#]: 顯示寬度;    -: 左對齊;    +:顯示數值符號;    例子:    # awk -F: '{printf "%-15s %i/n",$1,$3}' /etc/passwd輸出重定向    print items > output-file    print items >> output-file    print items | command    特殊文件描述符:    /dev/stdin:標準輸入    /dev/sdtout: 標準輸出    /dev/stderr: 錯誤輸出    /dev/fd/N: 某特定文件描述符,如/dev/stdin就相當于/dev/fd/0;    例子:    # awk -F: '{printf "%-15s %i/n",$1,$3 > "/dev/stderr" }' /etc/passwd

五、awk變量

    內置變量(Built-in Variables)    自定義變量(User-Defined Variables)    字段變量(Field Variables)

5.1 內置變量

5.1.1 awk內置變量之記錄變量:

    FS: input field separator,讀取文件本時,所使用字段分隔符;默認為空白字符    RS: input Record separator,輸入文本信息所使用的換行符;    OFS:Output Filed Separator:默認為空白字符    ORS:Output Row Separator:默認為換行符    awk -F:    awk -v FS=“:” -v OFS=“#”    awk ‘BEGIN { FS=“:”;OFS=“#”} {print}'

5.1.2 awk內置變量之數據變量:

    NR: The number of input records,awk命令所處理的記錄數;如果有多個文件,這個數目會把處理的多個文件中行統一計數;    NF:Number of Field,當前記錄的field個數;(注意{print NF}和 {print $NF}的區別)    FNR: 與NR不同的是,FNR用于記錄正處理的行是當前這一文件中被總共處理的行數(分別計數);    FILENAME: awk命令所處理的文件的名稱;在命令中獲取當前文件名    ARGC: awk命令的參數的個數;    ARGV: 數組,保存命令行本身這個字符串,如awk '{print $0}' a.txt b.txt這個命令中,ARGV[0]保存awk,ARGV[1]保存a.txt;    ENVIRON:當前shell環境變量及其值的關聯數組;    如:awk 'BEGIN{print ENVIRON["PATH"]}'    做計算器使用 awk BEGIN {print 1+1}

5.2 用戶自定義變量

gawk允許用戶自定義自己的變量以便在程序代碼中使用,變量名命名規則與大多數編程語言相同,只能使用字母、數字和下劃線,且不能以數字開頭。gawk變量名稱區分字符大小寫。(1)命令行中賦值變量    -v var=value    -v num1=20 -v num2=32    例如:    awk -v var="variable testing" 'BEGIN{print var}'(2)腳本程序(program)中賦值變量    例如:    awk 'BEGIN{var="variable testing";print var}'

5.3 字段變量

    可以像用戶自定義的變量一樣使用,唯一的區別是它們引用了字段。    新的字段可以通過賦值來創建。如果字段變量引用的字段沒有值,則被賦值為空串。    當字段的值發生變化時,awk會以OFS的值作為字段分隔符重新計算$0變量的值。    當不存在這個字段,創建并賦值;存在該字段,覆蓋原來的內容。    # awk ‘{ $5 = 1000 * $3 / $2; print }’ filename    # awk ‘$4 == “CA” { $4 = “California”;print}’ filename

六、awk的模式和操作:

awk 'program' input-file1 input-file2 ...    其中的program為:        pattern { action }        pattern { action }        ...

6.1 常見的模式類型:

                    Summary of Patternsempty {statements}An empty pattern is considered to match every input line.空模式,匹配每一行BEGIN {statements}The statements are executed once before any input has been read.特殊模式,僅在awk命令執行前運行一次END {statements}The statements are executed once after all input has been read.特殊模式,僅在awk命令結束前運行一次expression {statements}The statements are executed at each input line where the expression is true, that is, nonzero or nunnull當表達式為“真”輸入行,執行statements;expression為真指的是其值非0或非空。/regular expression/ {statements}The statements are executed at each input line that contains a string matched by regular expression.正則表達式,僅處理匹配的行compound pattern {statements}A compound pattern combines expressions with &&(AND),||(OR),!(NOT),and parentheses; the statements are executed at each input line wherethe compound pattern is true. 復合模式,將表達式用&&、||、!,以及括號組合起來;當compound pattern為真時,statements執行。pattern1,pattern2 {statements}A range pattern matches each input line from a line matched by pattern1 to the next line matched by pattern2,inclusive; the statements are executed at each matching line.范圍模式,startline,endline:/pattern1/,/pattern2/# awk ‘/Tom/,/Suzanne/‘ filename1、非只匹配一次,會多次(選擇關鍵字很重要);先匹配從第一個模式的首次出現到第二個模式的首次出現之間的內容,然后匹配從第一個模式的下一次出現到第二個的下一次出現,以此類推。2、當沒有找到第二個模式,會顯示從第一個模式出現的行到文本末尾。注意:不支持直接給出數字的格式# awk -F: ‘(NR>=2&&NR<=10){print $1}’ /etc/passwdBEGIN and END do not combine(組合) with other patterns. A range pattern cannot be part of any other pattern. BEGIN and END are the only patterns that require an action(不能省略action).    例如:    條目1:# df -h|awk '!/^File/,gsub(/%/,"") {if($5>20){print $NF}}’    條目2:# df -h|awk '!/^File/gsub(/%/,"") {if($5>20){print $NF}}'    條目3:# df -h|awk 'gsub(/%/,""),!/^File/ {if($5>20){print $NF}}’    條目4:# df -h|awk '!/^File/&&gsub(/%/,"") {if($5>20){print $NF}}’    條目5:# df -h|awk 'gsub(/%/,"")&&!/^File/ {if($5>20){print $NF}}’    # df -h|awk 'gsub(/%/,"")&&!/^File/ {if($5>20) print $NF}'    # df -h|awk 'gsub(/%/,"")&&!/^File/&&$5>20 {print $NF}’    # df -h|awk '!/^File/{split($5,percent,"%");if(percent[1]>20){print $NF}}'    解釋:        1、當pattern部分,多于一個模式時,兩個模式間的逗號“,”作用,以及兩個模式的順序很重要,沒有逗號或是調整順序(條目2、3)都達不到想要的結果。            條目4、5中使用&&與條目1可以達到預期的結果。&&沒有順序的限制。        總結建議:多模式,需要用&&,這樣避免出現“,”和模式順序的困擾。        2、action中,出現if語句,當statement只有一句,print $NF可以省略花括號{};當出現else,必須要加上花括號{};Regular expression: 正則表達式    格式為 /regular expression/        是$0 ~/regular expression/的簡寫形式    ^ 串首    $ 串尾    . 匹配單個任意字符    * 匹配零個或多個前導字符    + 匹配一個或多個前導字符    ? 匹配零個或一個前導字符    [ABC] 匹配ABC中任一字符    [^ABC] 匹配不在ABC中的字符    [A-Z] 匹配A到Z的任一字符    A|B 匹配A或B    (AB)+ 匹配一個或多個A B的組合;例如    /* 匹配星號本身    & 用在替換串中,代表查找串中匹配的內容expresssion: 比較表達式,其值非0或為非空字符時滿足條件,如:$1 ~ /foo/ 或 $1 == "magedu",用運算符~(匹配)和!~(不匹配)。    比較表達式用來對文本行進行比較,只有條件為真,才執行指定的動作。
運算符描述范例
=,+=,-=,*=,%=,^=賦值運算符(Assignment Operators)
expr1 ?expr2 :expr3C條件表達式(C Conditional Expression)expression中無法寫執行語句,只能賦值變量# awk -v num1=22 -v num2=31 'BEGIN {max=(num1>num2)?num1:num2;print “MAX number is "max}'MAX number is 31# awk -F: '{$3>=1000?usertype="Common User":usertype="Sysadmin or SysUser";printf "%20s:%-s/n",$1,usertype}' /etc/passwd
&&(AND) ||(OR) !(NOT)邏輯運算符(Logical Operators)
< <= == != > >= ~(match) !~(not match)關系運算符 (Relational Operators)
+ - * / % ^算術運算符(Arithmetic Operatiors)
++(Increment Operator)--(Decrement Operator)自增與自減運算符(Increment and Decrement Operators)
+(正號),-(負號)單目運算符
空格拼接運算符
        -賦值運算符(Assignment Operators)            =,+=,-=,*=,%=,^=        -條件表達式(Conditional expression Operators)            expr1 ?expr2 :expr3            expression中無法寫執行語句,只能賦值變量            # awk -v num1=22 -v num2=31 'BEGIN {max=(num1>num2)?num1:num2;print “MAX number is "max}'            MAX number is 31            # awk -F: '{$3>=1000?usertype="Common User":usertype="Sysadmin or SysUser";printf "%20s:%-s/n",$1,usertype}' /etc/passwd        -邏輯運算符(Logical Operators)            &&(AND) ||(OR) !(NOT)        -關系運算符 (Relational Operators)            < <= == != > >= ~(match) !~(not match)        -算術運算符(Arithmetic Operatiors)            + - * / % ^        -自增與自減運算符(Increment and Decrement Operators)             +(正號),-(負號),++(Increment Operator),—(Decrement Operator)        -運算優先級順序(Precedence)            $            ^            +,-,!(正負號以及邏輯上not)            *,/,%(乘 除 除數)            +,-            >,>=,<,<=,==,!=            ~,!~            &&            ||            ?:            =,+=,-=,*=,/=,%=,^=                    -復合模式            用邏輯運算符將模式組合起來形成的表達式。            # awk ‘!($2 < 100 && $3 < 20)’ filename                 

6.2 常見的Action

In a pattern-action statement, the pattern determines when the action is to be executed. Sometimes an action is very simple:a single print or assignment. Other times, it may be a sequence of several statements separated by newlines or semicolons.This section begins the description of actions by discussing expressions and control-flow statements. The following sections present user-defined functions,and statements for input and output.
                                    ActionsThe statements in actions can include:expressions: 包括 constants(常量),variables(變量),assignments(賦值),function calls(函數調用),etcoutput statementsprint expression-listprintf(format,expression-list)system(“command")input statementsclose(file [,how])getlinegetline <filegetline vargetline var <filenextnextfilecontrol statementsif (expression) statement [ else statement ]while (expression) statementdo statement while (expression)for (expression;expression;expression) statementfor (variable in array) statementbreakcontinueexit [ expression ]compound statements    

七、控制語句:

7.1 條件語句

    if-else    語法:if(condition) {statements}         if(condition) {statements} else {statements}         if (condition) {then-body} else {[ else-body ]}    注意:statement中只有一條語句,{}可以省略    # awk '{if ($3==0) {print $1, "Adminitrator";} else { print $1,"Common User"}}' /etc/passwd    例子:    awk -F: '{if ($1=="root") print $1, "Admin"; else print $1, "Common User"}' /etc/passwd    awk -F: '{if ($1=="root") printf "%-15s: %s/n", $1,"Admin"; else printf "%-15s: %s/n", $1, "Common User"}' /etc/passwd    awk -F: '{if ($1=="root") {printf "%-15s: %s/n", $1,"Admin”} else{printf "%-15s: %s/n", $1, "Common User"}}' /etc/passwd    awk -F: '{if ($1=="root") {printf "%-15s: %s/n", $1,"Admin”} else printf "%-15s: %s/n", $1, "Common User"}' /etc/passwd    注意:statement中只有一條語句,如果有else分支語句,要么將else前面的語句加分號;或是將前面的語句加上花括號{};else后面如果只有一個語句,加不加{}都可以。    總結:避免麻煩,將單個語句或多個語句都加上花括號{}。    awk -F: -v sum=0 '{if ($3>=500) sum++}END{print sum}' /etc/passwd

7.2 循環(while循環、for循環和特殊for循環)

    7.2.1 while循環    語法: while (condition){statement1; statment2; …}    條件“真”,進入循環;條件“假”,退出循環;    何為“真”:非0時就為“真”    awk -F: '{i=1;while (i<=3) {print $i;i++}}' /etc/passwd    awk -F: '{i=1;while (i<=NF) { if (length($i)>=4) {print $i}; i++ }}' /etc/passwd    awk '{i=1;while (i<=NF) {if ($i>=100)   print $i; i++}}' hello.txt    hello.txt文件的內容為一堆隨機數。        7.2.2 do-while循環 至少執行一次循環體,不管條件滿足與否    語法: do {statement1, statement2, ...} while (condition)    awk -F: '{i=1;do {print $i;i++}while(i<=3)}' /etc/passwd    awk -F: '{i=4;do {print $i;i--}while(i>4)}' /etc/passwd    7.2.3 for循環    語法: for ( variable assignment; condition; iteration process) { statement1, statement2, ...}    awk -F: '{for(i=1;i<=3;i++) print $i}' /etc/passwd    awk -F: '{for(i=1;i<=NF;i++) { if (length($i)>=4) {print $i}}}' /etc/passwd    7.2.4 for特殊循環 還可以用來遍歷數組元素:    語法: for (i in array) {statement1, statement2, ...}    awk -F: '$NF!~/^$/{BASH[$NF]++}END{for(A in BASH){printf "%15s:%i/n",A,BASH[A]}}' /etc/passwd    7.2.5 case    語法:switch (expression) { case VALUE or /REGEXP/: statement1, statement2,... default: statement1, ...}    7.2.6 循環控制break 和 continue    常用于循環或case語句中

7.3 程序控制語句 (next和exit)

    next語句    提前結束對本行文本的處理,并接著處理下一行;例如,下面的命令將顯示其ID號為奇數的用戶:    # awk -F: '{if($3%2==0) next;print $1,$3}' /etc/passwd    # awk ‘{if ($5 >= 4.5) next; print $1}’ datefile    如果第5個字段大等于4.5,就讀入輸入文件(datafile)的下一行,并從awk腳本的起點開始處理,否則,打印第一個字段。    理解為:當$5 >= 4.5,就跳過本行,從BEGIN處從頭執行。        exit語句    exit語句用于終止awk程序。它只能中斷對記錄的處理,不能跳過END語句。如果exit語句的參數是一個0~255之間的值(exit 1),    這個值就會被打印在命令行上,以表明程序是否執行成功,并且指出失敗的類型。    默認awk不能返回值 1,只要語法沒有錯誤都返回0,exit 1,設置返回值。    {exit (1)}    # echo $status (csh)    1    # echo $?    (sh/ksh)    1    說明:退出狀態為0表示成功,退出狀態為非0則表示失敗(這時UNIX的統一約定)。

八、awk中使用數組

8.1 數組(Arrays)array[index-expression]index-expression可以使用任意字符串;需要注意的是,如果某數據組元素事先不存在,那么在引用其時,awk會自動創建此元素并初始化為空串;因此,要判斷某數據組中是否存在某元素,需要使用index in array的方式。要遍歷數組中的每一個元素,需要使用如下的特殊結構:for (var in array) { statement1, ... }其中,var用于引用數組下標,而不是元素值;例子:netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'每出現一被/^tcp/模式匹配到的行,數組S[$NF]就加1,NF為當前匹配到的行的最后一個字段,此處用其值做為數組S的元素索引;awk '{counts[$1]++}; END {for(url in counts) print counts[url], url}' /var/log/httpd/access_log用法與上一個例子相同,用于統計某日志文件中IP地的訪問量8.2 刪除數組變量從關系數組中刪除數組索引需要使用delete命令。使用格式為:delete  array[index]

九、awk的內置函數

內置字符串函數(Built-In String Functions) gsub(r,s)gsub(r,s,t)index(s,t)length(s)match(s,r)split(s,a)split(s,a,fs)sprintf(fmt,expr-list)sub(r,s)sub(r,s,t)substr(s,p)substr(s,p,n)                                                                   1.sub和gsub函數:替換字符的作用(gsub全局替換,sub替換第一個) gsub(r,s)gsub(r,s,t)gsub(正則表達式,替換串);gsub(正則表達式,替換串,目標串);                                                   # awk 'gsub(/aa/,bb) {print $0}' grade.txt 特別注意一點的是:當bb是不是數字的時候,要用雙引號把它括起來才行。  2.index:查詢某個字符或字符串在整個字符串當中的位置 # awk '{print index("hollow","low") }’ filename  43.length:返回字符串的長度 # awk ‘{print length(“hello”)}’ filename# awk ‘{print length($1)}’ filename 4.substr:按照起始位置及長度返回字符串的一部分 substr(字符串,起始位置)substr(字符串,起始位置,字串長度)(包括空格)# awk '$1=="L.Tansley" {print substr($1,1,5)}' grade.txt 另一種形式是:返回字符串后綴或指定位置后面字符 # awk '{print substr($1,3)}' grade.txt 5.match:查找目標字符串是否包含查找字符的一部分 # awk 'BEGIN {print match("ANCD",/D/)}’   6.split:返回字符串數組元素個數split(字符串,數組,字段分隔符)split(字符串,數組)# awk ‘BEGIN{split(“12/25/2001”,date,”/“);print date[2]}’ filename   25                                              # awk 'BEGIN {print split("123#456#789",cc,"#")}' 7.sprintf函數:返回一個指定格式的表達式。可以在sprintf函數中使用printf函數的格式規范。格式:    variable = sprintf(”含有格式說明的字符串“,表達式1,表達式2,…,表達式n)# awk ‘{line = sprintf (“%-15s %6.2f “,$1,$3);print line}’ filename8.使用管道向awk傳入字符串 # echo "Stand-by" |awk '{print length($0)}’   9.使用wall -a -g tellin 消息,發消息給同組的人。   10.設置域分隔符: awk -F/| 設置|為域分隔符system(“command”)功能:執行系統command并將結果返回至awk命令systime()    —僅適于gawk功能:取系統當前時間strftime函數:使用C庫中的strftime函數對時間進行格式化。格式:# awk ‘BEGIN{print strftime(“%D”)}'tolower(字符串)    —僅適于gawk功能:將s中的所有字母轉為小寫toupper(字符串)    —僅適于gawk功能:將s中的所有字母轉為大寫其他內容:讀輸入(getline)# awk ‘BEGIN{ “date”|getline d;print d}’ datefile將unix/linux的date命令輸出通過管道傳給getline函數,結果保存在變量d中兵打印出來。# awk 'BEGIN{ printf "Who are you looking for?" ;getline name < "/dev/tty”}'從終端/dev/tty讀取輸入,保存到數組name中。控制函數# awk ‘{if ($5 >= 4.5) next; print $1}’ datefile如果第5個字段大等于4.5,就讀入輸入文件(datafile)的下一行,并從awk腳本的起點開始處理,否則,打印第一個字段。理解為:當$5 >= 4.5,就跳過本行,從BEGIN處從頭執行。

十、用戶自定義函數

自定義函數使用function關鍵字。格式如下:function F_NAME([variable,variable,variable,...]){     statements}函數還可以使用return語句返回值,格式為“return value”。netstat -tn |awk '/^tcp/{state[$NF]++}END{for (s in state){printf "%-15s 5d/n",s,state[s]}}'統計每個連接的個數  練習:      1、統計當前系統上每個客戶端IP的連接中處于TIME_WAIT的連接狀態的個數;      2、統計ps aux命令執行時,當前系統上各狀態的進程的個數;      [root@httpweb1 ~]# ps aux|awk '!/^USER/{state[$8]++}END{for (i in state) {printf "%-15s %d/n",i,state[i]}}'      S<              2      S<sl            1      Ss              18      STAT            1      SN              1      S               94      Ss+             7      Ssl             4      R+              1      S+              1      Sl              6      S<s             1      3、統計ps aux命令執行時,當前系統上各用戶的進程的個數;      [root@httpweb1 ~]# ps aux |awk '!/^USER/{state[$1]++}END{for (i in state) {printf "%s %d/n",i,state[i]}}'      rpc 1      dbus 1      named 1      68 2      daemon 4      postfix 2      rpcuser 1      root 122      4、顯示ps aux命令執行時,當前系統上其VSZ(虛擬內存集)大于10000的進程及其PID;      ps aux|awk '!/^USER/{if ($5<10000) next;print $2,$5,$NF}'      ps aux|awk '!/^USER/{if ($5>10000) print $2,$5,$NF}'
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 手机看片福利一区 | 久久久成人av | 中文在线a在线 | 国产精品美女久久久久久久久久久 | 国产综合一区二区 | 黄色高清网站 | 亚洲毛片在线 | 超碰超碰在线观看 | 国产精品美女久久久久久免费 | 日韩在线你懂的 | 欧美日韩视频一区二区三区 | 欧美亚洲国产精品 | 中文在线观看www | 国产精品美女久久久久aⅴ国产馆 | 亚州中文字幕蜜桃视频 | 久久久.com | 日韩三级电影视频 | 亚洲一区视频 | 91伊人网 | 国产一二 | 98精品国产高清在线xxxx天堂 | 亚洲天堂一区二区 | 成人av片在线观看 | 久久99久久精品视频 | 欧美国产日韩在线观看 | 欧美一区二区三区电影 | 成人精品电影 | 蜜桃一本色道久久综合亚洲精品冫 | 福利社午夜影院 | 久久伊人影院 | 亚洲精品成人 | 欧美极品欧美精品欧美视频 | 久久在线视频 | 久久久精 | 精品久久久久久久久久久久包黑料 | 久久91视频 | 欧美一级二级在线观看 | 免费观看黄a一级视频 | 影音先锋成人资源网 | 成人在线精品视频 | 国产精品一区在线看 |