歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Linux基礎知識:shell與awk

sort命令,參數-u去掉結果中得重復行,-t,改變分割符,-n根據數字大小排序,-k制定排序的域.eg:  sort -t: -k3n GARGO.db    #根據第三域的數字大小排序

sort -t: -k3nr GARGO.db  #根據第三域的數字大小排序,將排序結果逆向顯示

uniq命令 -c打印每行在文本中重復出現的次數,-d只顯示重復記錄,每個重復記錄只出現一次,-u只顯示沒有重復的記錄。uniq去除的重復行必須是連續的重復行,中間沒有夾雜任何文本。

join命令,文本記錄的連接,eg:join  -t:   -o1.1 2.1 2.2  -1 3  -2 1  text1 text2用第一個文本的第三個域連接第二個文本的第一個域,並顯示第一個文本第一個域,第二個文本第一個域和第二個域,分隔符為:

測試:

  test  expression

或者 [ expression ]

用$?判斷推出狀態,若為0表示命令運行成功

 num1 -eq num2 如果num1等於num2,測試結果為0

num1 -ge num2  如果num1大於等於num2,測試結果為0

還有(-gt 大於,-le小於等於,-lt小於,-ne不等於) 、

string測試字符串是否不為空

 -n string測試字符串是否不為空

-z  string測試字符串是否為空

文本操作符

-d file測試file是否為目錄

-e  file測試file是否存在

-f file測試file是否為普通文件

-r file測試file是否進程可讀

-s file測試長度是否不為0

-x file可執行,-w file可寫 -L file符號化鏈接

邏輯運算符:

!expression如果expression為假,則測試結果為真

expression1 -a expression2 同時為真,則測試結果為真

expression1 -o expression2 有一個為真,則測試結果為真

字符串處理:

計算長度${#string}或者expr length $string

expr index $string $substring子串索引

expr match $string $substring 字符串匹配,不配不上返回0

${string:position:length}或者expr substr  $string $position $length 抽取字符串(前面坐標0開始,後面從1開始)

${string#substring}刪除開頭處與substring匹配的最短子串

${string##substring}刪除開頭處與substring匹配的最長子串

${string%substring}刪除結尾處與substring匹配的最短子串

${string%%substring}刪除結尾處與substring匹配的最長子串

${string/substring/replacement} 替換第一次與substring匹配的字符串

${string//substring/replacement}替換所有與substring匹配的字符串


awk

awk 'BEGIN  {FS=":"} {if($1==2&&$2==2) print $0}' /etc/passwd 用:分割passwd,輸出第一個域或者第二個域等於2時的行信息

awk 'BEGIN  {FS=","}{print NF,NR,$0} END {print FILENAME}'  sturecord   #NF當前記錄中得域數量,NR當前記錄數,FILENAME當前輸入文件名

Copyright © Linux教程網 All Rights Reserved