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當前輸入檔案名稱