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當前輸入文件名