文本處理

grep命令

grep命令:查找文件裏符合條件的字符串正則表達式

grep函數用於在文件中查找能夠與模式匹配的文本,並顯示其所在行編輯器

grep函數的模式字符串即爲基礎正則表達式:函數

grep [-acinv] [-AB] [--color=auto] [mode] [file]

選項:spa

-a 將二進制文件當作文本文件處理命令行

-c 統計找到匹配的次數code

-i 忽略大小寫xml

-n 輸出匹配的行號blog

-v 反向查找,即輸出不存在匹配的行ci

-A After,輸出匹配的行後面全部行字符串

-B Before,輸出匹配的行前全部行

--color=auto 將匹配的內容自動使用不一樣顏色顯示

基礎正則表達式:

  • 特定字符串 直接使用單引號括起,特殊字符須要在前面加‘\’轉義,解除其特殊功能。

  • 包含/不包含 某集合的元素

[字符集] 表明字符集中任意一個字符,在表達式中佔一個字符的位置

[^字符集] 表明字符集不包含的任意一個字符,在表達式中佔一個字符的位置

字符集的描述能夠將全部元素寫出,無需分隔符每一個字符即爲一個元素(如:[abc])
也能夠按照語系字符集的順序寫出(如在LANG=C下的[a-z]表示全體小寫英文字母,或[a-z0-9]表示全體小寫字母或者數字)

  • 行首行尾

Linux風格的文本,行首標記爲「^」, 如'^a'表示第一個字符是a的行。行尾標記爲「,z」,′z'表示最後一個字符爲z的行

天然地,'^$'表示空行

  • 任意字符

.  任意單個字符,在表達式中佔一個字符的位置

* 0至無窮個前一字符的重複,如'a*'表示a後面跟0至無窮個a組成的字符串。

.* 表示任意字符0至無窮次重複,它在正則表達式中表示任意字符串

擴展正則表達式:(grep不支持,使用egrep或grep -E):

+ 重複一個或一個以上的前一個字符,如a+

? 0個或一個的前一個字符, 如a?

| 邏輯或

(a|b) 組字符串,表明字符串a或字符串b

(|)+ 表示重複1次或以上的組字符串

 

Sed命令

sed命令:一種在線編輯器,它一次處理一行內容

sed是以行爲單位的支持正則表達式的字符串處理命令

處理時,把當前處理的行存儲在臨時緩衝區中,稱爲'模式空間'(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無改變,除非你使用重定向存儲輸出。

sed [-inefr] {處理命令/腳本文件} [處理文件]

 

選項:

-n 使用安靜模式。若無此參數來自stdin的數據會所有輸出到屏幕,若使用此參數則只有通過sed處理的行纔會顯示

-e 直接在命令行中輸入處理命令

-f filename 添加腳本文件

-r 啓用擴展正則表達式支持(默認支持基礎正則表達式)

-i 直接將修改寫入文件,默認將其輸出到stdout。

處理命令 '[n1, [n2]]op str' n1,n2表示從n1到n2全部行(閉區間)做爲當前行,op是操做符,str是操做符後所接的字符串

相關文章
相關標籤/搜索