1. 程式人生 > >shell 程式設計中的文字處理

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以內的正整數:

執行結果如下: