shell指令碼學習(五)

2022-02-04 04:50:04 字數 1736 閱讀 9114

1、統計檔案的行數、單詞數、字元數

1)行數:

wc -l file

cat file | wc -l

2)單詞數

wc -w file

cat file | wc -w

3)統計字元數

wc -c file

cat file | wc -c

4)不跟任何引數時,三者都列印,列印順序為行數、單詞數、字元數

wc file

hbg@root:~/dl$ wc a.txt

6  6 36   a.txt

5)列印檔案中最長一行

wc -l file

2、正規表示式

1)「?」用於匹配單詞前後可能出現的空格

例如:要匹配給定文字中的所有單詞,可以使用下面的正規表示式:

( ?[a-za-z]+ ?)            [a-za-z]代表乙個字母或者多個字母(a-z 和 a-z)

2)正規表示式                  描述                    示例

^                              行起始標記                                              ^tux匹配以tux起始的行

$                     行尾標記                                             tux$匹配以tux結尾的行

.              匹配任意乙個字元               hack. 匹配hackl和hacki,但是不能匹配hackl2和hacki1,它只能匹配單個字元

匹配包含在[字元]之中的任意乙個字元           coo[kl] 匹配cook 或 cool

[^]            匹配除[^字元]之外的任意乙個字元        9[^01] 匹配92、93,但是不匹配90和91

[-]             匹配中指定範圍內的任意乙個字元               [1-5]匹配從1~5的任意乙個數字

?           匹配之前的項一次貨0次                colou?r匹配 color或colour但是不能匹配colouur

+          匹配之前項一次或多次            rollno-9+匹配rollno-99、rollno-9,但是不能匹配rollno-

*                             匹配之前的項0次或多次            co*l 匹配 cl、col、cooool等

()           建立乙個用於匹配的子串            ma(tri)?x匹配 max 或 matrix

匹配之前的項n次                [0-9]匹配任意一位3位數,可以擴充套件為[0-9][0-9][0-9]

之前的項至少需要匹配n次          [0-9]匹配任意乙個兩位或更多位的數字

指定之前的項必須匹配的最小次數和最大次數      [0-9]匹配乙個2位數到5位數之間的任意乙個數字

|          交替--匹配 | 兩邊的任意一項         oct (1st | 2nd) 匹配oct 1st或oct 2nd

\                            轉義符可以將上面介紹的特殊字元進行轉義         a\.b匹配 a.b,但不能匹配ajb。通過在.之前加上字首\,從而忽略了.的特殊意義     

Shell指令碼學習筆記 五 函式

函式 bash呼叫函式不會開啟新的子shell,會在現有的shell環境中執行該函式。函式的語法形式 呼叫 函式名 引數1 引數2 funcname變數,值的內容是函式名 取消函式定義 unset f 函式名 return指令 傳回值 作用範圍 函式僅在定義的shell環境中有效,如果要傳遞函式給子...

Shell 指令碼學習筆記五 Shell傳遞引數

我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 bin bash echo shell 傳遞引數例項!echo 執行的檔名 0 echo 第乙個引數為 1 echo 第二個引...

SHELL指令碼學習總結(第五話)指令碼控制

linux利用訊號與執行在系統中的程序進行通訊。我們可以利用這些訊號來停止 啟動 終止程序。可以通過對指令碼進行程式設計,使其在收到特定訊號時執行某些命令,從而控制shell指令碼的操作。最常見訊號訊號值 描述快捷鍵 1sighup 掛起程序 2sigint 終止程序 ctrl c 3sigquit...