shell指令碼基礎和grep文字處理工具企業應用4

2022-06-27 11:18:12 字數 1915 閱讀 8216

文字處理工具:

egrep:

支援擴充套件的正規表示式實現類似於grep文字過濾功能:grep -e

egrep [options] pattern [file...]

egrep [options] [-e pattern | -f file] [file...]

選項:-i,-o,-v,-q,-a,-b,-c

-g:支援基本正規表示式

擴充套件正規表示式的元字元:

字元匹配

.:任意單個字元

:指定範圍內的任意單個字元

[^]:指定範圍外的任意單個字元

次數匹配

*:任意次,0,1或多次

?: 0次或1次,即其前的字元是可有可無的

+:其前的字元至少1次

:其前的字元m次

:至少m次,至多n次

:至多n次

:至少m次

位置錨定

^:行首錨定

$:行尾錨定

\<,\b:詞首錨定

\>,\b:詞尾錨定

分組及引用

():分組,括號內的模式匹配到的字元也會被記錄於正規表示式引擎的內部變數中

後向引用:\1,\2,\3,...

或a|b:a或者b

c|cat:c或者cat

(c|c)at:cat或者cat

fgrep:不支援正規表示式元字元

當無需要用到元字元去編寫模式時,使用fgrep必能更好,效能強

文字檢視及處理工具:wc,cut,sort,uniq,diff,patch

wc:word count

wc [option]... [file]...

-l:lines

-w:words

-c:bytes

cut:remove sections from each line of files

cut option... [file]...

-d char:以指定的字元為分隔符;後邊可以直接跟選項引數,而不要空格

-f fields:挑選出的字段

#:指定的單個字段

#-#:指定連續的多個字段

#,#:指定離散的多個字段

sort:sort lines of text files

sort [option]... [file]...

-n:基於數值大小而非字元進行排序

-t char:指定分隔符

-k #:用於排序比較的字段

-r:逆序排序

-f:忽略大小寫

-u:重複的行只保留乙份

重複行指連續且相同的資料

uniq:report or omit repeated lines 報告或移除重複的行

uniq [option]... [input [output]]

-c:顯示每行的重複次數

-u:僅顯示未曾重複過的行

-d:僅顯示重複過的行

diff:compare files line by line 逐行比較檔案的不同

diff [option]... files

生成打補丁的檔案,為下邊的patch命令打補丁用

diff /path/to/oldfile /path/to/newfile > /path/to/patch_file

-u:使用unfled機制,即顯示要修改的行的上下文,預設為3行

patch:向檔案打補丁

patch [-blnr][ -c| -e| -n][-d dir][-d define][-i patchfile] [-o outfile][-p num][-r rejectfile][file]

patch [options] -i /path/to/patch_file /path/to/oldfile

patch /path/to/oldfile < /path/to/patch_file

shell指令碼學習(二) grep

1.grep egrep c 列印符合要求的行數 n 在輸出符合要求的行的同時連同行號一起輸出 v 列印不符合要求的行 r 會把目錄下面所有的檔案全部遍歷一遍 i 忽略大小寫 2.例子介紹 grep n root 1.txt grep n v root 1.txt 過濾出所有包含數字行 grep n...

shell指令碼基礎和grep文字處理工具企業應用1

bash特性及bash指令碼程式設計初步 使用者要跟計算機互動就需要有終端,比如 顯示器 鍵鼠等,在終端有附著的介面程式 gui kde gnome xfce cli etc shells bash zshfish bash的特性 命令列展開 命令別名 alias,unalias 命令歷史 hist...

Shell指令碼中find和grep命令的區別

在shell指令碼中find 和 grep 同樣都是搜尋命令。find 命令用於在系統中搜尋符合條件的檔名,如果需要模糊查詢,則使用萬用字元進行匹配。搜尋時檔名是完全匹配的。例如 root localhost touch abc 建立檔案abc root localhost touch abcd 建...