shell程式設計基礎 二

2021-10-05 08:55:23 字數 1930 閱讀 9586

1.1 字元類

字元含義舉例.

匹配任意乙個字元

abc.可以匹配abcd、abc9

匹配括號中的任意乙個字元

[abc]d可以匹配ad、bd、或cd

-在括號內表示字元範圍

[0-9a-fa-f]可以匹配一位十六進製制數

^位於括號內的開頭,匹配括號中字元之外的任意字元

[^xy]匹配出xy之外的其他字元,因此[ ^xy]1可以匹配a1、b1、但是不匹配x1、y1

[[:***:]]

grep工具預定義的一些命名字元類

[[:alpha:]]匹配乙個字母,[[:digit:]]匹配乙個數字

1.2 數量限定符

字元含義舉例?

緊跟在它前面的單元應匹配零次或一次

[0-9]?\ .[0-9]:匹配0.0、2.3等

+緊跟在它前面的單元應匹配一次或多次

*緊跟在它前面的單元應匹配零次或多次

[0-9] [0-9]*匹配至少一位數字

緊跟在它前面的單元應精準匹配n次

[1-9] [0-9]:匹配從100到999的整數

緊跟在它前面的單元應匹配至少n次

[1-9] [0-9]:匹配三位以上整數

緊跟在它前面的單元應匹配最多m次

[0-9] 相當於[0-9]?

緊跟在它前面的單元應匹配至少n次,最多m次

1.3 位置限定符

字元含義舉例^

匹配行首的位置

^content匹配位於一行開頭的content

$匹配行末的位置

:katex parse error: expected group after '^' at position 15: 匹配位於一行結尾的 : 號,^̲匹配空行

\ <

匹配單詞開頭的位置

\ \ >

匹配單詞結尾的位置

p\ >匹配leap. . .,但不匹配parent、sleepy

\b匹配單詞開頭或結尾的位置

\bat\b匹配. . . at . . .,但不匹配cat、atexit、batch

\b匹配非單詞開頭和結尾的位置

\bat\b匹配battery,但不匹配. . . attend、hat . . .

1.4 特殊字元

字元含義舉例\

轉義字元,普通字元轉義為特殊字元,特殊字元轉義為普通字元

普通字元《寫成\ 《表示單詞開頭的位置,特殊字元 . 寫成\ .

()將正規表示式的一部分組成乙個單元,可以對整個單元使用數量限定符

([0-9] \ .)[0-9]匹配ip位址

|連線兩個子表示式,表示或的關係

n(o|rither)匹配no或neither

basic正則也有extended的一些語法,只是字元?+{}|()應解釋為普通字元,要表示這些字元的含義必須對其進行轉義。如果用grep而不是egrep,並且沒有加-e引數,則應該遵照basic規範

linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並將匹配的行列印出來,全程稱是global regular expression print,表示全域性正規表示式版本,使用許可權為所有使用者。

grep家族包括egrep、和fgrep。egrep是grep的擴充套件,支援更多的re元字元,fgrep將所有字母都看作單詞,也就是正規表示式中的元字元表示回其自身的字面意義,不再特殊。

sed為流編輯器(stream editor),在指令碼中作為過濾器進行使用,即將前乙個程式的輸出引入sed的輸入,經過一系列編輯命令轉換為另一種格式輸出

常用選項

sed以行為單位處理檔案,awk既可以以行為單位也可以一列為單位。awk預設的行分隔符是換行,預設的列分隔符是連續的空格和tab鍵,但是行分隔符和列分隔符都可以自定義,可以將沒一行若干欄位以:分割,就可以重新定義awk的列分隔符為:,並以列為單位處理檔案

awk中預定義的變數

Shell 程式設計基礎

2 shell 程式設計基礎 shell 簡介認識後台程式 bash 程式設計熟悉 linux 系統下的編輯環境 熟悉linux 下的各種 shell 熟練進行 shell 程式設計熟悉 vi基本操作 熟悉emacs 的基本操作 比較不同 shell 的區別編寫乙個測試伺服器是否連通的 shell ...

shell程式設計基礎

1.熟悉shell 1.1 基本語法 bin bash shell必須以上面所示的開頭,以 開頭的語句表示注釋。1.2 新增可執行許可權 chmod u x 檔名 1.3 建立簡單的shell bin bash echo n hell user,today is date echo good luc...

shell 程式設計基礎

1.基礎正規表示式 aa 表示至少包含乙個a的行,a 匹配所有內容 匹配任意乙個字元,精準匹配 grep 提取文字中的字元 grep v root 取反不包括root的行 2.cut 命令 f第幾列 d分隔符 3.printf ni輸出n個整數 ns n個字元 m.nf m.nprintf s t ...