shell 程式設計中的文字處理
grep與egerp命令
grep
-i ##忽略字母大小寫
-v ##條件取反
-c ##統計匹配行數
-q ##靜默,無任何輸出
-n ##顯示匹配結果所在的行號
ergep(extend grep)用法與grep命令相同
過濾含有172.25.254.254的行:
統計匹配行數:-c
顯示匹配結果所在的行號:-n
條件取反,過濾所有不含172.25.254.250的行:-v
基本元字元
基本元字元:^ $
過濾/etc/passwd檔案中以root開頭的行,在過濾/etc/passwd檔案中以bash結尾的行:
基本元字元:. 過濾非空行
基本元字元: + ? *
過濾含有1個f及以上的行
過濾color或者colorful
過濾全部含有col的行:
基本元字元:{}
過濾含有3個we的行,再過濾含有1或者2個ab的行:
cut
cut -d ##指定分隔符
cut -d : -f 1-3 /etc/passwd ##指定分隔符為:,顯示第1到3列
cut -c 1,4 /etc/passwd ##顯示第一和第四個字元
練習:獲取主機IP
sort
sort
-n ##純數字排序
-r ##倒序
-u ##去掉重複數字
-o ##輸出到指定檔案中
-t ##指定分隔符
-k ##指定要排序的列
uniq
uniq
-u ##顯示唯一的行
-d ##顯示重複的行
-c ##每行顯示一次並統計重複次數
test
[ "$a" = "$b" ] ##等於
[ "$a" != "$b" ] ##不等於
[ "$a" -eq "$b" ] ##等於
[ "$a" -ne "$b" ] ##不等於
[ "$a" -le "$b" ] ##小於等於
[ "$a" -ge "$b" ] ##大於等於
[ "$a" -gt "$b" ] ##大於
[ "$a" -lt "$b" ] ##小於
[ "$a" -ne "$b" -a "$a" -gt "$b" ] ##-a必須條件都滿足
[ "$a" -ne "$b" -o"$a" -gt "$b" ] ##-a條件至少滿足一個
[ -z "$a" ] ##是否為空
[ -e "file" ] ##是否存在
[ -f "file" ] ##普通檔案
[ -b "file" ] ##塊裝置
[ -S "file" ] ##套接字
[ -c "file" ] ##字元裝置
[ -L "file" ] ##軟連結
判斷10以內的正整數:
執行結果如下: